1CC = c++
2AR = ar cru
3RANLIB = ranlib
4MAJOR_VERSION = 1
5MINOR_VERSION = 6
6PATCH_LEVEL = 8
7VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL)
8LIBDIR = /usr/lib
9INCDIR = /usr/include
10INCLUDE = -I../include
11LIBNAME = NL
12OUTPUT = lib$(LIBNAME).$(VERSION).dylib
13STATIC = libNL.a
14OPTFLAGS = -funroll-all-loops -ffast-math -fomit-frame-pointer -O2 -D_REENTRANT -DMACOSX
15CFLAGS = -Wall -fPIC $(INCLUDE) $(OPTFLAGS)
16LIBFLAGS = -dylib -r -lpthread -Wl,-x
17OBJECTS = crc.o errorstr.o nl.o sock.o group.o loopback.o err.o thread.o mutex.o condition.o nltime.o
18
19all: $(OBJECTS)
20	$(CC) -o $(OUTPUT) $(OBJECTS) $(LIBFLAGS) $(CFLAGS)
21	$(AR) $(STATIC) $(OBJECTS)
22	$(RANLIB) $(STATIC)
23
24nl.o : nlinternal.h nl.c
25sock.o : nlinternal.h sock.h sock.c
26errorstr.o : nlinternal.h errorstr.c
27crc.o : ../include/nl.h crc.c
28group.o : nlinternal.h group.c
29loopback.o : nlinternal.h loopback.h loopback.c
30err.o : nlinternal.h err.c
31thread.o : nlinternal.h thread.c
32mutex.o : nlinternal.h mutex.c
33condition.o : nlinternal.h condition.c
34nltime.o : nlinternal.h nltime.c
35
36install:
37	@echo ""
38	@echo "*************************************************"
39	@echo "* If you forgot to su to root, this probably    *"
40	@echo "* wont work                                     *"
41	@echo "*************************************************"
42	cp $(OUTPUT) $(LIBDIR)
43	cp $(STATIC) $(LIBDIR)
44	chmod 755 $(LIBDIR)/$(OUTPUT)
45	ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).$(MAJOR_VERSION).$(MINOR_VERSION).dylib
46	ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).$(MAJOR_VERSION).dylib
47	ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).dylib
48	cp ../include/nl.h $(INCDIR)/nl.h
49	chmod 644 $(INCDIR)/nl.h
50	@echo ""
51	@echo "*************************************************"
52	@echo "* Installed HawkNL.                             *"
53	@echo "* Remember to run /sbin/ldconfig before using   *"
54	@echo "* the library, you may also want to check that  *"
55	@echo "* $(LIBDIR) is included in /etc/ld.so.conf      *"
56	@echo "* You must be root to run ldconfig.             *"
57	@echo "*************************************************"
58
59uninstall:
60	@echo ""
61	@echo "*************************************************"
62	@echo "* If you forgot to su to root, this probably    *"
63	@echo "* wont work                                     *"
64	@echo "*************************************************"
65	rm -f $(LIBDIR)/$(OUTPUT)
66	rm -f $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION).$(MINOR_VERSION)
67	rm -f $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION)
68	rm -f $(LIBDIR)/lib$(LIBNAME).so
69	rm -f $(LIBDIR)/$(STATIC)
70	rm -f $(INCDIR)/nl.h
71	@echo ""
72	@echo "*************************************************"
73	@echo "* HawkNL uninstalled.                           *"
74	@echo "*************************************************"
75
76.PHONY : clean
77clean:
78	rm $(OBJECTS) $(OUTPUT) $(STATIC)
79
80
81