# # iniparser Makefile # # Compiler settings CC ?= gcc CFLAGS += -fPIC -Wall -Wextra -ansi -pedantic ifndef DEBUG CFLAGS += -O2 else CFLAGS += -g endif # Ar settings to build the library AR ?= ar ARFLAGS = rcv SHLD = ${CC} ${CFLAGS} LDSHFLAGS = -shared -Wl,-Bsymbolic LDFLAGS += -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib # Set RANLIB to ranlib on systems that require it (Sun OS < 4, Mac OSX) # RANLIB = ranlib RANLIB = true RM ?= rm -f # Implicit rules SUFFIXES = .o .c .h .a .so .sl COMPILE.c ?= $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c ifndef V QUIET_AR = @echo "AR $@"; QUIET_CC = @echo "CC $@"; QUIET_LINK = @echo "LINK $@"; QUIET_RANLIB = @echo "RANLIB $@"; endif .c.o: $(QUIET_CC)$(COMPILE.c) $(OUTPUT_OPTION) $< SRCS = src/iniparser.c \ src/dictionary.c OBJS = $(SRCS:.c=.o) default: libiniparser.a libiniparser.so libiniparser.a: $(OBJS) $(QUIET_AR)$(AR) $(ARFLAGS) $@ $^ $(QUIET_RANLIB)$(RANLIB) $@ libiniparser.so: $(OBJS) $(QUIET_LINK)$(SHLD) $(LDSHFLAGS) $(LDFLAGS) -o $@.0 $(OBJS) \ -Wl,-soname=`basename $@`.0 clean: $(RM) $(OBJS) @(cd test ; $(MAKE) clean) veryclean: $(RM) $(OBJS) libiniparser.a libiniparser.so* rm -rf ./html ; mkdir html cd example ; $(MAKE) veryclean cd test ; $(MAKE) veryclean docs: @(cd doc ; $(MAKE)) check: libiniparser.so @(cd test ; $(MAKE)) .PHONY: example example: libiniparser.a @(cd example ; $(MAKE))