C++ = g++
ifndef os
os = LINUX
endif
ifndef arch
arch = IA32
endif
CCFLAGS = -fPIC -Wall -D$(os) -finline-functions -O3 -g
CCFLAGS += -DNO_BUSY_WAITING
#CCFLAGS += -DCUSTOM_CC
ifeq ($(arch), IA32)
CCFLAGS += -DIA32
endif
ifeq ($(arch), POWERPC)
CCFLAGS += -mcpu=powerpc
endif
ifeq ($(arch), SPARC)
CCFLAGS += -mcpu=sparc
endif
ifeq ($(arch), IA64)
CCFLAGS += -DIA64
endif
ifeq ($(arch), AMD64)
CCFLAGS += -DAMD64
endif
OBJS = common.o window.o list.o buffer.o packet.o channel.o core.o api.o ccc.o
DIR = $(shell pwd)
all: libudt.so libudt.a
%.o: %.cpp %.h udt.h
$(C++) $(CCFLAGS) $< -c
libudt.so: $(OBJS)
ifneq ($(os), BSD)
$(C++) -shared -o $@ $^
else
$(C++) -dynamiclib -o libudt.dylib -lstdc++ -lpthread -lm $^
endif
libudt.a: $(OBJS)
ar -rcs $@ $^
clean:
rm -f *.o *.so *.dylib *.a udt
install:
mv libudt.so libudt.a ../lib