Makefile.unix revision 268896
1226586SdimCC ?= gcc
2226586SdimDESTDIR ?= /usr/local
3226586SdimLD ?= gcc
4226586SdimC_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src
5226586SdimMAJOR_VERSION = 0
6226586SdimMINOR_VERSION = 2
7226586SdimPATCH_VERSION = 9
8226586SdimVERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)"
9226586SdimSONAME = libucl.so
10226586SdimSONAME_FULL = $(SONAME).$(MAJOR_VERSION)
11226586SdimOBJDIR ?= .obj
12226586SdimTESTDIR ?= tests
13226586SdimSRCDIR ?= src
14245431SdimINCLUDEDIR ?= include
15245431SdimMKDIR ?= mkdir
16226586SdimINSTALL ?= install
17245431SdimRM ?= rm
18226586SdimRMDIR ?= rmdir
19226586SdimLN ?= ln
20226586SdimLD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm
21226586SdimLD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl
22226586SdimLD_ADD ?= -lrt
23226586SdimCOPT_FLAGS ?= -O2
24226586SdimHDEPS = $(SRCDIR)/ucl_hash.h \
25226586Sdim		$(SRCDIR)/ucl_chartable.h \
26226586Sdim		$(SRCDIR)/ucl_internal.h \
27226586Sdim		$(INCLUDEDIR)/ucl.h \
28226586Sdim		$(SRCDIR)/xxhash.h
29226586SdimOBJECTS = $(OBJDIR)/ucl_hash.o \
30226586Sdim		$(OBJDIR)/ucl_util.o \
31226586Sdim		$(OBJDIR)/ucl_parser.o \
32245431Sdim		$(OBJDIR)/ucl_emitter.o \
33226586Sdim		$(OBJDIR)/ucl_schema.o \
34226586Sdim		$(OBJDIR)/xxhash.o
35226586Sdim
36226586Sdimall: $(OBJDIR) $(OBJDIR)/$(SONAME)
37226586Sdim
38226586Sdim$(OBJDIR)/$(SONAME): $(OBJDIR)/$(SONAME_FULL)
39226586Sdim	$(LN) -sf $(SONAME_FULL) $(OBJDIR)/$(SONAME)
40226586Sdim
41226586Sdim$(OBJDIR)/$(SONAME_FULL): $(OBJECTS)
42226586Sdim	$(CC) -o $(OBJDIR)/$(SONAME_FULL) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS)
43226586Sdim
44226586Sdim$(OBJDIR):
45226586Sdim	@$(MKDIR) -p $(OBJDIR)
46245431Sdim
47226586Sdim# Compile rules
48226586Sdim$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS)
49226586Sdim	$(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c
50226586Sdim$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS)
51226586Sdim	$(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c
52226586Sdim$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS)
53226586Sdim	$(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c
54226586Sdim$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS)
55226586Sdim	$(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c
56226586Sdim$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS)
57226586Sdim	$(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c
58226586Sdim$(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS)
59226586Sdim	$(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c
60226586Sdim
61226586Sdimclean:
62226586Sdim	$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME_FULL) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate $(OBJDIR)/test_schema || true
63226586Sdim	$(RMDIR) $(OBJDIR)
64226586Sdim	
65226586Sdim# Utils
66226586Sdim
67245431Sdimchargen: utils/chargen.c $(OBJDIR)/$(SONAME)
68226586Sdim	$(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c
69226586Sdimobjdump: utils/objdump.c $(OBJDIR)/$(SONAME)
70226586Sdim	$(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS)
71226586Sdim
72226586Sdim# Tests
73226586Sdim
74226586Sdimtest: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate $(OBJDIR)/test_schema
75226586Sdim
76226586Sdimrun-test: test
77226586Sdim	TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate $(OBJDIR)/test_schema
78226586Sdim	
79226586Sdim$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME)
80226586Sdim	$(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS)
81226586Sdim$(OBJDIR)/test_schema: $(TESTDIR)/test_schema.c $(OBJDIR)/$(SONAME)
82226586Sdim	$(CC) -o $(OBJDIR)/test_schema $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_schema.c $(LD_UCL_FLAGS)
83226586Sdim$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME)
84226586Sdim	$(CC) -o $(OBJDIR)/test_speed $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_speed.c $(LD_UCL_FLAGS) $(LD_ADD)
85226586Sdim$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME)
86226586Sdim	$(CC) -o $(OBJDIR)/test_generate $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_generate.c $(LD_UCL_FLAGS) $(LD_ADD)
87226586Sdim
88226586Sdiminstall: $(OBJDIR)/$(SONAME)
89226586Sdim	$(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME)
90226586Sdim	$(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h
91226586Sdim
92226586Sdim.PHONY: clean $(OBJDIR)
93226586Sdim