From 1ba3839377e99d2020c33757964de3a49cafab15 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Thu, 29 Mar 2012 23:54:45 +0200 Subject: Initial Skeleton for Dalos-cli. --- Makefile | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0ea0f7f --- /dev/null +++ b/Makefile @@ -0,0 +1,148 @@ +ifeq ($(SYSTEM),) + SYSTEM = $(shell uname | cut -f 1 -d_) +endif + +TRUESYSTEM = $(shell uname) +MACHINE = $(shell uname -m) +DISTRIB = $(shell cat /etc/issue | cut -f 1 -d\ | head -1) + +CC = gcc +CXX = g++ +LD = g++ +AS = gcc -c +AR = ar rcs + +BINEXT = bin + +CPPFLAGS += -fno-strict-aliasing + +ifeq ($(DEBUG),) +CPPFLAGS += -g -O3 -DNDEBUG +LDFLAGS += -g +else +CPPFLAGS += -g -DDEBUG +LDFLAGS += -g +endif + +INCLUDES = includes Balau/includes Balau/libcoro Balau/libeio Balau/libev Balau/LuaJIT/src +LIBS = z + +ifeq ($(SYSTEM),Darwin) + CC = clang + CXX = clang++ + CPPFLAGS += -fPIC + LDFLAGS += -fPIC + LIBS += pthread iconv + CONFIG_H = Balau/darwin-config.h + ARCH_FLAGS = -arch i386 + LD = clang++ -arch i386 + STRIP = strip -x + ifeq ($(TRUESYSTEM),Linux) + CROSSCOMPILE = true + ARCH_FLAGS = + CC = i686-apple-darwin9-gcc + CXX = i686-apple-darwin9-g++ + LD = i686-apple-darwin9-g++ -arch i386 -mmacosx-version-min=10.5 + STRIP = i686-apple-darwin9-strip -x + AS = i686-apple-darwin9-as -arch i386 + AR = i686-apple-darwin9-ar rcs + endif +endif + +ifeq ($(SYSTEM),MINGW32) + BINEXT = exe + COMPILE_PTHREADS = true + CONFIG_H = Balau/mingw32-config.h + INCLUDES += Balau/win32/iconv Balau/win32/pthreads-win32 Balau/win32/regex Balau/win32/dbghelp + LIBS += ws2_32 ntdll + ifeq ($(TRUESYSTEM),Linux) + ifeq ($(DISTRIB),CentOS) + CROSSCOMPILE = true + CC = i686-pc-mingw32-gcc + CXX = i686-pc-mingw32-g++ + LD = i686-pc-mingw32-g++ + AS = i686-pc-mingw32-gcc -c + STRIP = i686-pc-mingw32-strip --strip-unneeded + WINDRES = i686-pc-mingw32-windres + AR = i686-pc-mingw32-ar rcs + LUAJIT_CROSS = i686-pc-mingw32- + else + CROSSCOMPILE = true + CC = i586-mingw32msvc-gcc + CXX = i586-mingw32msvc-g++ + LD = i586-mingw32msvc-g++ + AS = i586-mingw32msvc-gcc -c + STRIP = i586-mingw32msvc-strip --strip-unneeded + WINDRES = i586-mingw32msvc-windres + AR = i586-mingw32msvc-ar rcs + LUAJIT_CROSS = i586-mingw32msvc- + endif + LUAJIT_TARGET = Windows + endif + + ifeq ($(TRUESYSTEM),Darwin) + CROSSCOMPILE = true + CC = i386-mingw32-gcc + CXX = i386-mingw32-g++ + LD = i386-mingw32-g++ + AS = i386-mingw32-gcc -c + STRIP = i386-mingw32-strip --strip-unneeded + WINDRES = i386-mingw32-windres + AR = i386-mingw32-ar rcs + endif +endif + +ifeq ($(SYSTEM),Linux) + CPPFLAGS += -fPIC + LDFLAGS += -fPIC -rdynamic + LIBS += pthread dl + CONFIG_H = Balau/linux-config.h + ARCH_FLAGS = -march=i686 -m32 + ASFLAGS = -march=i686 --32 + STRIP = strip --strip-unneeded +endif + +CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) -fexceptions -imacros $(CONFIG_H) +CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS) + +CXXFLAGS += -Wno-deprecated -std=gnu++0x + +LDFLAGS += $(ARCH_FLAGS) +LDLIBS = $(addprefix -l, $(LIBS)) + +vpath %.cc src + +DALOS_CLI_SOURCES = \ +Dalos-cli.cc + +ALL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(DALOS_CLI_SOURCES)))) +ALL_DEPS = $(addsuffix .dep, $(notdir $(basename $(DALOS_CLI_SOURCES)))) + +TARGET=Dalos-cli.$(BINEXT) + +all: dep $(TARGET) + +strip: $(TARGET) + $(STRIP) $(TARGET) + +Balau: + $(MAKE) -C Balau + +$(TARGET): Balau $(ALL_OBJECTS) + $(LD) $(LDFLAGS) -o $@ $(ALL_OBJECTS) ./Balau/LuaJIT/src/libluajit.a ./Balau/libBalau.a $(LDLIBS) + +dep: $(ALL_DEPS) + +%.dep : %.cc + $(CXX) $(CXXFLAGS) $(CPPFLAGS_NO_ARCH) -M $< > $@ + +%.dep : %.c + $(CC) $(CFLAGS) $(CPPFLAGS_NO_ARCH) -M $< > $@ + +-include $(ALL_DEPS) + +clean: + rm -f $(ALL_OBJECTS) $(ALL_DEPS) $(TARGET) + $(MAKE) -C Balau clean + +.PHONY: clean strip Balau -- cgit v1.2.3