]> CyberLeo.Net >> Repos - FreeBSD/releng/9.3.git/blob - contrib/libucl/Makefile.unix
Fix multiple OpenSSL vulnerabilities.
[FreeBSD/releng/9.3.git] / contrib / libucl / Makefile.unix
1 CC ?= gcc
2 DESTDIR ?= /usr/local
3 LD ?= gcc
4 C_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src
5 MAJOR_VERSION = 0
6 MINOR_VERSION = 2
7 PATCH_VERSION = 8
8 VERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)"
9 SONAME = libucl.so
10 SONAME_FULL = $(SONAME).$(MAJOR_VERSION)
11 OBJDIR ?= .obj
12 TESTDIR ?= tests
13 SRCDIR ?= src
14 INCLUDEDIR ?= include
15 MKDIR ?= mkdir
16 INSTALL ?= install
17 RM ?= rm
18 RMDIR ?= rmdir
19 LN ?= ln
20 LD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm
21 LD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl
22 LD_ADD ?= -lrt
23 COPT_FLAGS ?= -O2
24 HDEPS = $(SRCDIR)/ucl_hash.h $(SRCDIR)/ucl_chartable.h $(SRCDIR)/ucl_internal.h $(INCLUDEDIR)/ucl.h $(SRCDIR)/xxhash.h
25 OBJECTS = $(OBJDIR)/ucl_hash.o $(OBJDIR)/ucl_util.o $(OBJDIR)/ucl_parser.o $(OBJDIR)/ucl_emitter.o $(OBJDIR)/xxhash.o
26
27 all: $(OBJDIR) $(OBJDIR)/$(SONAME)
28
29 $(OBJDIR)/$(SONAME): $(OBJDIR)/$(SONAME_FULL)
30         $(LN) -sf $(SONAME_FULL) $(OBJDIR)/$(SONAME)
31
32 $(OBJDIR)/$(SONAME_FULL): $(OBJECTS)
33         $(CC) -o $(OBJDIR)/$(SONAME_FULL) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS)
34
35 $(OBJDIR):
36         @$(MKDIR) -p $(OBJDIR)
37
38 # Compile rules
39 $(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS)
40         $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c
41 $(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS)
42         $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c
43 $(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS)
44         $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c
45 $(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS)
46         $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c
47 $(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS)
48         $(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c
49
50 clean:
51         $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME_FULL) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate
52         $(RMDIR) $(OBJDIR)
53         
54 # Utils
55
56 chargen: utils/chargen.c $(OBJDIR)/$(SONAME)
57         $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c
58 objdump: utils/objdump.c $(OBJDIR)/$(SONAME)
59         $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS)
60
61 # Tests
62
63 test: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate
64
65 run-test: test
66         TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate
67         
68 $(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME)
69         $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS)
70 $(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME)
71         $(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)
72 $(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME)
73         $(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)
74
75 install: $(OBJDIR)/$(SONAME)
76         $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME)
77         $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h
78
79 .PHONY: clean $(OBJDIR)