|
1 # |
|
2 # iniparser Makefile |
|
3 # |
|
4 |
|
5 # source files |
|
6 SRCS = iniparser.c \ |
|
7 dictionary.c |
|
8 |
|
9 # include rules for platform determination |
|
10 include platform.mk |
|
11 |
|
12 # flags for the the various systems |
|
13 ifeq ($(UNAME), Linux) |
|
14 # Compiler settings |
|
15 CC = gcc |
|
16 AR = ar |
|
17 ARFLAGS = rcv |
|
18 SHLD = ${CC} ${CFLAGS} |
|
19 CFLAGS = -O2 -fPIC -Wall -ansi -pedantic |
|
20 LDSHFLAGS = -shared -Wl,-Bsymbolic -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib |
|
21 LDFLAGS = -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib |
|
22 endif |
|
23 ifeq ($(UNAME), Darwin) |
|
24 # Compiler settings |
|
25 CC = gcc |
|
26 # Ar settings to build the library |
|
27 AR = ar |
|
28 ARFLAGS = rcv |
|
29 SHLD = libtool |
|
30 CFLAGS = -v -arch i386 -fPIC -Wall -ansi -pedantic |
|
31 LDFLAGS = -arch_only i386 |
|
32 endif |
|
33 ifeq ($(WIN32), 1) |
|
34 CC = cl |
|
35 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 |
|
36 LDFLAGS = //OUT:"iniparser.lib" //NOLOGO |
|
37 LINK = lib |
|
38 RM = rm -f |
|
39 endif |
|
40 |
|
41 # windows build rules |
|
42 ifeq ($(WIN32), 1) |
|
43 |
|
44 COMPILE.c = $(CC) $(CFLAGS) -c |
|
45 OBJS = $(SRCS:.c=.obj) |
|
46 |
|
47 all: iniparser.obj dictionary.obj iniparser.lib |
|
48 |
|
49 iniparser.obj: dictionary.obj |
|
50 @($(CC) $(CFLAGS) iniparser.c) |
|
51 |
|
52 dictionary.obj: |
|
53 @(echo "compiling dictionary; WIN32: $(WIN32); platform: $(UNAME)") |
|
54 @($(CC) $(CFLAGS) dictionary.c) |
|
55 |
|
56 iniparser.lib: dictionary.obj iniparser.obj |
|
57 @(echo "linking $(OBJS)") |
|
58 @($(LINK) $(LDFLAGS) $(OBJS)) |
|
59 else |
|
60 |
|
61 # *nix (and Mac) build rules |
|
62 RM = rm -f |
|
63 COMPILE.c = $(CC) $(CFLAGS) -c |
|
64 OBJS = $(SRCS:.c=.o) |
|
65 |
|
66 all: libiniparser.a libiniparser.so |
|
67 |
|
68 .c.o: |
|
69 @(echo "platform: $(UNAME), WIN32=$(WIN32); compiling $< ...") |
|
70 @($(COMPILE.c) -o $@ $<) |
|
71 |
|
72 libiniparser.a: $(OBJS) |
|
73 @($(AR) $(ARFLAGS) libiniparser.a $(OBJS)) |
|
74 |
|
75 ifeq ($(UNAME), Linux) |
|
76 libiniparser.so: $(OBJS) |
|
77 @$(SHLD) $(LDSHFLAGS) -o $@.0 $(OBJS) $(LDFLAGS) |
|
78 else |
|
79 libiniparser.so: $(OBJS) |
|
80 @$(SHLD) -o $@.0 $(LDFLAGS) $(OBJS) |
|
81 endif |
|
82 endif |
|
83 |
|
84 clean: |
|
85 $(RM) $(OBJS) libiniparser.* |