File: Makefile

package info (click to toggle)
oscpack 1.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch, wheezy
  • size: 408 kB
  • ctags: 651
  • sloc: cpp: 3,356; makefile: 93
file content (99 lines) | stat: -rw-r--r-- 3,688 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# should be either OSC_HOST_BIG_ENDIAN or OSC_HOST_LITTLE_ENDIAN
# Apple Mac OS X: OSC_HOST_BIG_ENDIAN
# Win32: OSC_HOST_LITTLE_ENDIAN
# i386 GNU/Linux: OSC_HOST_LITTLE_ENDIAN
ENDIANESS=OSC_HOST_LITTLE_ENDIAN

CXX = g++
INCLUDES = -I./
COPTS  = -Wall -O3 -fPIC
CDEBUG = -Wall -g 
CXXFLAGS = $(COPTS) $(INCLUDES) -D$(ENDIANESS)

PREFIX = /usr/local
INSTALL = /usr/bin/install -c

#Name definitions
UNITTESTS=OscUnitTests
SEND=OscSendTests
RECEIVE=OscReceiveTest
DUMP=OscDump

INCLUDEDIR = oscpack
LIBNAME = liboscpack
LIBSONAME = $(LIBNAME).so
LIBFILENAME = $(LIBSONAME).1.0.2

#Test and example source
SENDSOURCES = ./tests/OscSendTests.cpp ./osc/OscOutboundPacketStream.cpp ./osc/OscTypes.cpp ./ip/posix/NetworkingUtils.cpp ./ip/posix/UdpSocket.cpp ./ip/IpEndpointName.cpp
SENDOBJECTS = $(SENDSOURCES:.cpp=.o)

RECEIVESOURCES = ./tests/OscReceiveTest.cpp ./osc/OscTypes.cpp ./osc/OscReceivedElements.cpp ./osc/OscPrintReceivedElements.cpp ./ip/posix/NetworkingUtils.cpp ./ip/posix/UdpSocket.cpp
RECEIVEOBJECTS = $(RECEIVESOURCES:.cpp=.o)

DUMPSOURCES = ./examples/OscDump.cpp ./osc/OscTypes.cpp ./osc/OscReceivedElements.cpp ./osc/OscPrintReceivedElements.cpp ./ip/posix/NetworkingUtils.cpp ./ip/posix/UdpSocket.cpp
DUMPOBJECTS = $(DUMPSOURCES:.cpp=.o)

UNITTESTSOURCES = ./tests/OscUnitTests.cpp ./osc/OscOutboundPacketStream.cpp ./osc/OscTypes.cpp ./osc/OscReceivedElements.cpp ./osc/OscPrintReceivedElements.cpp
UNITTESTOBJECTS = $(UNITTESTSOURCES:.cpp=.o)

#Library sources
LIBSOURCES = ./ip/IpEndpointName.cpp \
	./ip/posix/NetworkingUtils.cpp ./ip/posix/UdpSocket.cpp\
	./osc/OscOutboundPacketStream.cpp ./osc/OscPrintReceivedElements.cpp ./osc/OscReceivedElements.cpp ./osc/OscTypes.cpp
LIBOBJECTS = $(LIBSOURCES:.cpp=.o)

all:	unittests send receive dump

unittests : $(UNITTESTOBJECTS)
	@if [ ! -d bin ] ; then mkdir bin ; fi
	$(CXX) -o bin/$(UNITTESTS) $+ $(LIBS) 
send : $(SENDOBJECTS)
	@if [ ! -d bin ] ; then mkdir bin ; fi
	$(CXX) -o bin/$(SEND) $+ $(LIBS) 
receive : $(RECEIVEOBJECTS)
	@if [ ! -d bin ] ; then mkdir bin ; fi
	$(CXX) -o bin/$(RECEIVE) $+ $(LIBS) 
dump : $(DUMPOBJECTS)
	@if [ ! -d bin ] ; then mkdir bin ; fi
	$(CXX) -o bin/$(DUMP) $+ $(LIBS) 

clean:
	rm -rf bin $(UNITTESTOBJECTS) $(SENDOBJECTS) $(RECEIVEOBJECTS) $(DUMPOBJECTS) $(LIBOBJECTS) $(LIBFILENAME) include lib oscpack &> /dev/null

$(LIBFILENAME): $(LIBOBJECTS)
	@#GNU/Linux case
	$(CXX) -shared -Wl,-soname,$(LIBSONAME).1 -o $(LIBFILENAME) $(LIBOBJECTS) -lc
	@#Mac OS X case
	@#$(CXX) -dynamiclib -Wl,-install_name,$(LIBSONAME) -o $(LIBFILENAME) $(LIBOBJECTS) -lc
	
lib: $(LIBFILENAME)

#Installs the library on a system global location
install: lib
	@$(INSTALL) -m 755 $(LIBFILENAME) $(PREFIX)/lib/$(LIBFILENAME)
	@ln -s -f $(PREFIX)/lib/$(LIBFILENAME) $(PREFIX)/lib/$(LIBSONAME) 
	@mkdir  -p $(PREFIX)/include/oscpack/ip $(PREFIX)/include/oscpack/osc
	@$(INSTALL) -m 644 ip/*.h $(PREFIX)/include/oscpack/ip
	@$(INSTALL) -m 644 osc/*.h $(PREFIX)/include/oscpack/osc
	@echo "SUCCESS! oscpack has been installed in $(PREFIX)/lib and $(PREFIX)/include/ospack/"
	@echo "now doing ldconfig..."
	@ldconfig

#Installs the include/lib structure locally
install-local: lib
	@echo ""
	@echo " Installing in local directory <$(INCLUDEDIR)>"
	@echo "   > Creating symbolic link"
	@ln -s $(LIBFILENAME) $(LIBSONAME)
	@echo "   > Creating directories"
	@mkdir -p oscpack/lib
	@mkdir -p oscpack/include/ip
	@mkdir -p oscpack/include/osc
	@echo "   > Copying files"
	@mv $(LIBFILENAME) $(LIBSONAME) oscpack/lib
	@cp ip/*.h oscpack/include/ip
	@cp osc/*.h oscpack/include/osc
	@echo ""
	@echo "   > Success!"