86 lines
1.9 KiB
Makefile
86 lines
1.9 KiB
Makefile
#
|
|
# iniparser Makefile
|
|
#
|
|
|
|
# source files
|
|
SRCS = iniparser.c \
|
|
dictionary.c
|
|
|
|
# include rules for platform determination
|
|
include platform.mk
|
|
|
|
# flags for the the various systems
|
|
ifeq ($(UNAME), Linux)
|
|
# Compiler settings
|
|
CC = gcc
|
|
AR = ar
|
|
ARFLAGS = rcv
|
|
SHLD = ${CC} ${CFLAGS}
|
|
CFLAGS = -O2 -fPIC -Wall -ansi -pedantic
|
|
LDSHFLAGS = -shared -Wl,-Bsymbolic -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib
|
|
LDFLAGS = -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib
|
|
endif
|
|
ifeq ($(UNAME), Darwin)
|
|
# Compiler settings
|
|
CC = gcc
|
|
# Ar settings to build the library
|
|
AR = ar
|
|
ARFLAGS = rcv
|
|
SHLD = libtool
|
|
CFLAGS = -v -arch i386 -fPIC -Wall -ansi -pedantic
|
|
LDFLAGS = -arch_only i386
|
|
endif
|
|
ifeq ($(WIN32), 1)
|
|
CC = cl
|
|
CFLAGS = //Od //D "_WIN32" //D "WIN32" //D "_CONSOLE" //D "_CRT_SECURE_NO_WARNINGS" //D "_UNICODE" //D "UNICODE" //Gm //EHsc //RTC1 //MDd //W3 //nologo //c //ZI //TC
|
|
LDFLAGS = //OUT:"iniparser.lib" //NOLOGO
|
|
LINK = lib
|
|
RM = rm -f
|
|
endif
|
|
|
|
# windows build rules
|
|
ifeq ($(WIN32), 1)
|
|
|
|
COMPILE.c = $(CC) $(CFLAGS) -c
|
|
OBJS = $(SRCS:.c=.obj)
|
|
|
|
all: iniparser.obj dictionary.obj iniparser.lib
|
|
|
|
iniparser.obj: dictionary.obj
|
|
@($(CC) $(CFLAGS) iniparser.c)
|
|
|
|
dictionary.obj:
|
|
@(echo "compiling dictionary; WIN32: $(WIN32); platform: $(UNAME)")
|
|
@($(CC) $(CFLAGS) dictionary.c)
|
|
|
|
iniparser.lib: dictionary.obj iniparser.obj
|
|
@(echo "linking $(OBJS)")
|
|
@($(LINK) $(LDFLAGS) $(OBJS))
|
|
else
|
|
|
|
# *nix (and Mac) build rules
|
|
RM = rm -f
|
|
COMPILE.c = $(CC) $(CFLAGS) -c
|
|
OBJS = $(SRCS:.c=.o)
|
|
|
|
all: libiniparser.a libiniparser.so
|
|
|
|
.c.o:
|
|
@(echo "platform: $(UNAME), WIN32=$(WIN32); compiling $< ...")
|
|
@($(COMPILE.c) -o $@ $<)
|
|
|
|
libiniparser.a: $(OBJS)
|
|
@($(AR) $(ARFLAGS) libiniparser.a $(OBJS))
|
|
|
|
ifeq ($(UNAME), Linux)
|
|
libiniparser.so: $(OBJS)
|
|
@$(SHLD) $(LDSHFLAGS) -o $@.0 $(OBJS) $(LDFLAGS)
|
|
else
|
|
libiniparser.so: $(OBJS)
|
|
@$(SHLD) -o $@.0 $(LDFLAGS) $(OBJS)
|
|
endif
|
|
endif
|
|
|
|
clean:
|
|
$(RM) $(OBJS) libiniparser.*
|