Makefile 1.4 KB
Newer Older
1 2 3 4 5
#
# iniparser Makefile
#

# Compiler settings
6
CC      ?= gcc
E
Emmanuel Leblond 已提交
7 8 9 10 11 12 13

CFLAGS  += -fPIC -Wall -Wextra -ansi -pedantic
ifndef DEBUG
CFLAGS	+= -O2
else
CFLAGS  += -g
endif
14 15

# Ar settings to build the library
16
AR	    ?= ar
17 18 19
ARFLAGS = rcv

SHLD = ${CC} ${CFLAGS}
K
Kevin Pyle 已提交
20
LDSHFLAGS = -shared -Wl,-Bsymbolic
21
LDFLAGS += -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib
22 23 24 25 26

# Set RANLIB to ranlib on systems that require it (Sun OS < 4, Mac OSX)
# RANLIB  = ranlib
RANLIB = true

27
RM      ?= rm -f
28 29 30 31 32 33


# Implicit rules

SUFFIXES = .o .c .h .a .so .sl

K
Kevin Pyle 已提交
34
COMPILE.c	?= $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
35 36 37 38 39 40 41 42

ifndef V
QUIET_AR	= @echo "AR	$@";
QUIET_CC	= @echo "CC	$@";
QUIET_LINK	= @echo "LINK	$@";
QUIET_RANLIB	= @echo "RANLIB	$@";
endif

43
.c.o:
44
	$(QUIET_CC)$(COMPILE.c) $(OUTPUT_OPTION) $<
45 46 47 48 49 50 51 52 53 54 55


SRCS = src/iniparser.c \
	   src/dictionary.c

OBJS = $(SRCS:.c=.o)


default:	libiniparser.a libiniparser.so

libiniparser.a:	$(OBJS)
56
	$(QUIET_AR)$(AR) $(ARFLAGS) $@ $^
57
	$(QUIET_RANLIB)$(RANLIB) $@
58 59

libiniparser.so:	$(OBJS)
K
Kevin Pyle 已提交
60
	$(QUIET_LINK)$(SHLD) $(LDSHFLAGS) $(LDFLAGS) -o $@.0 $(OBJS) \
61 62 63 64
		-Wl,-soname=`basename $@`.0

clean:
	$(RM) $(OBJS)
E
Emmanuel Leblond 已提交
65
	@(cd test ; $(MAKE) clean)
66 67 68 69

veryclean:
	$(RM) $(OBJS) libiniparser.a libiniparser.so*
	rm -rf ./html ; mkdir html
E
Emmanuel Leblond 已提交
70
	cd example ; $(MAKE) veryclean
71 72 73 74 75
	cd test ; $(MAKE) veryclean

docs:
	@(cd doc ; $(MAKE))
	
E
Emmanuel Leblond 已提交
76
check: libiniparser.so
77
	@(cd test ; $(MAKE))
78

E
Emmanuel Leblond 已提交
79 80 81
.PHONY: example
example: libiniparser.a
	@(cd example ; $(MAKE))