[Dist/Debian] Append a debian version string, -nnsX
[platform/upstream/iniparser.git] / Makefile
1 #
2 # iniparser Makefile
3 #
4 .PHONY: example
5
6 # Compiler settings
7 CC      ?= gcc
8
9 CFLAGS  += -fPIC -Wall -Wextra -ansi -pedantic
10 ifndef DEBUG
11 ADDITIONAL_CFLAGS  ?= -O2
12 else
13 ADDITIONAL_CFLAGS  ?= -g
14 endif
15
16 CFLAGS += ${ADDITIONAL_CFLAGS}
17
18 # Ar settings to build the library
19 AR          ?= ar
20 ARFLAGS = rcv
21
22 SHLD = ${CC} ${CFLAGS}
23 LDSHFLAGS = -shared -Wl,-Bsymbolic
24 LDFLAGS += -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib
25
26 # .so.0 is for version 3.x, .so.1 is 4.x
27 SO_TARGET ?= libiniparser.so.1
28
29 # Set RANLIB to ranlib on systems that require it (Sun OS < 4, Mac OSX)
30 # RANLIB  = ranlib
31 RANLIB = true
32
33 RM      ?= rm -f
34
35
36 # Implicit rules
37
38 SUFFIXES = .o .c .h .a .so .sl
39
40 COMPILE.c       ?= $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
41
42 ifndef V
43 QUIET_AR        = @echo "AR     $@";
44 QUIET_CC        = @echo "CC     $@";
45 QUIET_LINK      = @echo "LINK   $@";
46 QUIET_RANLIB    = @echo "RANLIB $@";
47 endif
48
49 .c.o:
50         $(QUIET_CC)$(COMPILE.c) $(OUTPUT_OPTION) $<
51
52
53 SRCS = src/iniparser.c \
54            src/dictionary.c
55
56 OBJS = $(SRCS:.c=.o)
57
58
59 default:        libiniparser.a $(SO_TARGET)
60
61 libiniparser.a: $(OBJS)
62         $(QUIET_AR)$(AR) $(ARFLAGS) $@ $^
63         $(QUIET_RANLIB)$(RANLIB) $@
64
65 $(SO_TARGET):   $(OBJS)
66         $(QUIET_LINK)$(SHLD) $(LDSHFLAGS) $(LDFLAGS) -o $(SO_TARGET) $(OBJS) \
67                 -Wl,-soname=`basename $(SO_TARGET)`
68
69 clean:
70         $(RM) $(OBJS)
71         @(cd test ; $(MAKE) clean)
72
73 veryclean:
74         $(RM) $(OBJS) libiniparser.a $(SO_TARGET)
75         rm -rf ./html ; mkdir html
76         cd example ; $(MAKE) veryclean
77         cd test ; $(MAKE) veryclean
78
79 docs:
80         @(cd doc ; $(MAKE))
81         
82 check: $(SO_TARGET)
83         @(cd test ; $(MAKE))
84
85 example: libiniparser.a
86         @(cd example ; $(MAKE))