annotate oscpack/Makefile @ 101:52e44ee1c791 tip master

enabled all scores in autostart script
author Rob Canning <rc@kiben.net>
date Tue, 21 Apr 2015 16:20:57 +0100
parents 0ae87af84e2f
children
rev   line source
rob@76 1 # oscpack makefile
rob@76 2
rob@76 3 # the source code should auto-detect endianess for most systems
rob@76 4 # (see osc/OscHostEndianness.h)
rob@76 5 # otherwise you need to explicitly set ENDIANESS below
rob@76 6 # to either OSC_HOST_BIG_ENDIAN or OSC_HOST_LITTLE_ENDIAN
rob@76 7 # Apple Mac OS X (PowerPC): OSC_HOST_BIG_ENDIAN
rob@76 8 # Apple Mac OS X (Intel): OSC_HOST_LITTLE_ENDIAN
rob@76 9 # Win32: OSC_HOST_LITTLE_ENDIAN
rob@76 10 # i386 GNU/Linux: OSC_HOST_LITTLE_ENDIAN
rob@76 11
rob@76 12 ENDIANESS=OSC_DETECT_ENDIANESS #source code will detect using preprocessor
rob@76 13 #ENDIANESS=OSC_HOST_LITTLE_ENDIAN
rob@76 14
rob@76 15 UNAME := $(shell uname)
rob@76 16
rob@76 17 CXX := g++
rob@76 18 INCLUDES := -I.
rob@76 19 COPTS := -Wall -Wextra -O3
rob@76 20 CDEBUG := -Wall -Wextra -g
rob@76 21 CXXFLAGS := $(COPTS) $(INCLUDES) -D$(ENDIANESS)
rob@76 22
rob@76 23 BINDIR := bin
rob@76 24 PREFIX := /usr/local
rob@76 25 INSTALL := install -c
rob@76 26
rob@76 27 #Name definitions
rob@76 28 UNITTESTS := $(BINDIR)/OscUnitTests
rob@76 29 SENDTESTS := $(BINDIR)/OscSendTests
rob@76 30 RECEIVETEST := $(BINDIR)/OscReceiveTest
rob@76 31 SIMPLESEND := $(BINDIR)/SimpleSend
rob@76 32 SIMPLERECEIVE := $(BINDIR)/SimpleReceive
rob@76 33 DUMP := $(BINDIR)/OscDump
rob@76 34
rob@76 35 INCLUDEDIR := oscpack
rob@76 36 LIBNAME := liboscpack
rob@76 37 LIBSONAME := $(LIBNAME).so
rob@76 38 LIBFILENAME := $(LIBSONAME).1.1.0
rob@76 39
rob@76 40 # Common source groups
rob@76 41
rob@76 42 RECEIVESOURCES := osc/OscReceivedElements.cpp osc/OscPrintReceivedElements.cpp
rob@76 43 SENDSOURCES := osc/OscOutboundPacketStream.cpp
rob@76 44 NETSOURCES := ip/posix/UdpSocket.cpp ip/IpEndpointName.cpp ip/posix/NetworkingUtils.cpp
rob@76 45 COMMONSOURCES := osc/OscTypes.cpp
rob@76 46
rob@76 47 RECEIVEOBJECTS := $(RECEIVESOURCES:.cpp=.o)
rob@76 48 SENDOBJECTS := $(SENDSOURCES:.cpp=.o)
rob@76 49 NETOBJECTS := $(NETSOURCES:.cpp=.o)
rob@76 50 COMMONOBJECTS := $(COMMONSOURCES:.cpp=.o)
rob@76 51
rob@76 52 # Test source
rob@76 53
rob@76 54 UNITTESTSOURCES := tests/OscUnitTests.cpp
rob@76 55 UNITTESTOBJECTS := $(UNITTESTSOURCES:.cpp=.o)
rob@76 56
rob@76 57 SENDTESTSSOURCES := tests/OscSendTests.cpp
rob@76 58 SENDTESTSOBJECTS := $(SENDTESTSSOURCES:.cpp=.o)
rob@76 59
rob@76 60 RECEIVETESTSOURCES := tests/OscReceiveTest.cpp
rob@76 61 RECEIVETESTOBJECTS := $(RECEIVETESTSOURCES:.cpp=.o)
rob@76 62
rob@76 63 # Example source
rob@76 64
rob@76 65 SIMPLESENDSOURCES := examples/SimpleSend.cpp
rob@76 66 SIMPLESENDOBJECTS := $(SIMPLESENDSOURCES:.cpp=.o)
rob@76 67
rob@76 68 SIMPLERECEIVESOURCES := examples/SimpleReceive.cpp
rob@76 69 SIMPLERECEIVEOBJECTS := $(SIMPLERECEIVESOURCES:.cpp=.o)
rob@76 70
rob@76 71 DUMPSOURCES := examples/OscDump.cpp
rob@76 72 DUMPOBJECTS := $(DUMPSOURCES:.cpp=.o)
rob@76 73
rob@76 74 #Library objects
rob@76 75
rob@76 76 LIBOBJECTS := $(COMMONOBJECTS) $(SENDOBJECTS) $(RECEIVEOBJECTS) $(NETOBJECTS)
rob@76 77
rob@76 78 .PHONY: all unittests sendtests receivetest simplesend simplereceive dump library clean install install-local
rob@76 79
rob@76 80 all: unittests sendtests receivetest simplesend simplereceive dump
rob@76 81
rob@76 82 unittests : $(UNITTESTS)
rob@76 83 sendtests: $(SENDTESTS)
rob@76 84 receivetest : $(RECEIVETEST)
rob@76 85 simplesend : $(SIMPLESEND)
rob@76 86 simplereceive : $(SIMPLERECEIVE)
rob@76 87 dump : $(DUMP)
rob@76 88
rob@76 89 # Build rule and common dependencies for all programs
rob@76 90 # | specifies an order-only dependency so changes to bin dir modified date don't trigger recompile
rob@76 91 $(UNITTESTS) $(SENDTESTS) $(RECEIVETEST) $(SIMPLESEND) $(SIMPLERECEIVE) $(DUMP) : $(COMMONOBJECTS) | $(BINDIR)
rob@76 92 $(CXX) -o $@ $^
rob@76 93
rob@76 94 # Additional dependencies for each program (make accumulates dependencies from multiple declarations)
rob@76 95 $(UNITTESTS) : $(UNITTESTOBJECTS) $(SENDOBJECTS) $(RECEIVEOBJECTS)
rob@76 96 $(SENDTESTS) : $(SENDTESTSOBJECTS) $(SENDOBJECTS) $(NETOBJECTS)
rob@76 97 $(RECEIVETEST) : $(RECEIVETESTOBJECTS) $(RECEIVEOBJECTS) $(NETOBJECTS)
rob@76 98 $(SIMPLESEND) : $(SIMPLESENDOBJECTS) $(SENDOBJECTS) $(NETOBJECTS)
rob@76 99 $(SIMPLERECEIVE) : $(SIMPLERECEIVEOBJECTS) $(RECEIVEOBJECTS) $(NETOBJECTS)
rob@76 100 $(DUMP) : $(DUMPOBJECTS) $(RECEIVEOBJECTS) $(NETOBJECTS)
rob@76 101
rob@76 102 $(BINDIR):
rob@76 103 mkdir $@
rob@76 104
rob@76 105 clean:
rob@76 106 rm -rf $(BINDIR) $(UNITTESTOBJECTS) $(SENDTESTSOBJECTS) $(RECEIVETESTOBJECTS) $(DUMPOBJECTS) $(LIBOBJECTS) $(SIMPLESENDOBJECTS) $(SIMPLERECEIVEOBJECTS) $(LIBFILENAME) include lib oscpack &> /dev/null
rob@76 107
rob@76 108 $(LIBFILENAME): $(LIBOBJECTS)
rob@76 109 ifeq ($(UNAME), Darwin)
rob@76 110 #Mac OS X case
rob@76 111 $(CXX) -dynamiclib -Wl,-install_name,$(LIBSONAME) -o $(LIBFILENAME) $(LIBOBJECTS) -lc
rob@76 112 else
rob@76 113 #GNU/Linux case
rob@76 114 $(CXX) -shared -Wl,-soname,$(LIBSONAME) -o $(LIBFILENAME) $(LIBOBJECTS) -lc
rob@76 115 endif
rob@76 116
rob@76 117 lib: $(LIBFILENAME)
rob@76 118
rob@76 119 #Installs the library on a system global location
rob@76 120 install: $(LIBFILENAME)
rob@76 121 @$(INSTALL) -m 755 $(LIBFILENAME) $(PREFIX)/lib/$(LIBFILENAME)
rob@76 122 @ln -s -f $(PREFIX)/lib/$(LIBFILENAME) $(PREFIX)/lib/$(LIBSONAME)
rob@76 123 @mkdir -p $(PREFIX)/include/oscpack/ip $(PREFIX)/include/oscpack/osc
rob@76 124 @$(INSTALL) -m 644 ip/*.h $(PREFIX)/include/oscpack/ip
rob@76 125 @$(INSTALL) -m 644 osc/*.h $(PREFIX)/include/oscpack/osc
rob@76 126 @echo "SUCCESS! oscpack has been installed in $(PREFIX)/lib and $(PREFIX)/include/ospack/"
rob@76 127 ifneq ($(UNAME), Darwin)
rob@76 128 @echo "now doing ldconfig..."
rob@76 129 @ldconfig
rob@76 130 endif
rob@76 131
rob@76 132 #Installs the include/lib structure locally
rob@76 133 install-local: $(LIBFILENAME)
rob@76 134 @echo ""
rob@76 135 @echo " Installing in local directory <$(INCLUDEDIR)>"
rob@76 136 @echo " > Creating symbolic link"
rob@76 137 @ln -s $(LIBFILENAME) $(LIBSONAME)
rob@76 138 @echo " > Creating directories"
rob@76 139 @mkdir -p oscpack/lib
rob@76 140 @mkdir -p oscpack/include/ip
rob@76 141 @mkdir -p oscpack/include/osc
rob@76 142 @echo " > Copying files"
rob@76 143 @mv $(LIBFILENAME) $(LIBSONAME) oscpack/lib
rob@76 144 @cp ip/*.h oscpack/include/ip
rob@76 145 @cp osc/*.h oscpack/include/osc
rob@76 146 @echo ""
rob@76 147 @echo " > Success!"
rob@76 148