libname     := liboscpack.a
system	?= $(shell uname -s)

ifeq ($(system), Darwin)
subprojects := ip ip/posix osc
sources     := $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp)
ARCHFLAGS 	:=  -arch i386 -arch x86_64

else 
ifeq ($(system), Linux)
subprojects := ip ip/posix osc
sources     := $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp)
ARCHFLAGS 	:= 

else
subprojects := ip ip/win32 osc
sources     := $(wildcard ip/*.cpp)  $(wildcard ip/win32/*.cpp)  $(wildcard osc/*.cpp)
ARCHFLAGS 	:= 
endif
endif

VPATH = $(subprojects)

CXXFLAGS ?= -O3 -Wall -Wuninitialized $(ARCHFLAGS)
CXXFLAGS += -Wno-parentheses -I. $(addprefix -I, $(subprojects))

objects := $(sources:.cpp=.o)


## TARGETS

all: $(libname)

$(libname): $(objects)
	rm -f $@
	ar cq $@ $(objects)
	ranlib $@
	
depend :
	makedepend -fMakefile -w120 -Y -- $(CXXFLAGS) -- $(sources)
	
clean :
	rm -f $(objects)
	rm -f $(libname)
	
	
# DO NOT DELETE

ip/IpEndpointName.o: ip/IpEndpointName.h ip/NetworkingUtils.h
ip/posix/NetworkingUtils.o: ip/NetworkingUtils.h
ip/posix/UdpSocket.o: ip/UdpSocket.h ip/NetworkingUtils.h ip/IpEndpointName.h ip/PacketListener.h ip/TimerListener.h
osc/OscOutboundPacketStream.o: osc/OscOutboundPacketStream.h osc/OscTypes.h osc/OscException.h osc/OscHostEndianness.h
osc/OscPrintReceivedElements.o: osc/OscPrintReceivedElements.h osc/OscReceivedElements.h osc/OscTypes.h
osc/OscPrintReceivedElements.o: osc/OscException.h
osc/OscReceivedElements.o: osc/OscReceivedElements.h osc/OscTypes.h osc/OscException.h osc/OscHostEndianness.h
osc/OscTypes.o: osc/OscTypes.h