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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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/libBalau.a ./Balau/LuaJIT/src/libluajit.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
|