Lines 16-21
LDFLAGS=$(shell sdl-config --libs) $(shell xml2-config --libs) -lSDL_net \
Link Here
|
16 |
$(foreach FEATURE, $(FEATURES), $($(FEATURE)_LIBS)) |
16 |
$(foreach FEATURE, $(FEATURES), $($(FEATURE)_LIBS)) |
17 |
_LDFLAGS=$(XDIR) -lGL -lpthread -lstdc++ |
17 |
_LDFLAGS=$(XDIR) -lGL -lpthread -lstdc++ |
18 |
|
18 |
|
|
|
19 |
CC ?= gcc |
20 |
CXX ?= g++ |
21 |
|
22 |
# some options |
23 |
DATADIR ?= /usr/share/games/eternal-lands |
24 |
|
25 |
CPPFLAGS += -DDATA_DIR=\"$(DATADIR)\" \ |
26 |
-DLINUX \ |
27 |
-DELC \ |
28 |
$(foreach FEATURE, $(EL_FEATURES), -D$(FEATURE)) \ |
29 |
-D_7ZIP_ST |
30 |
|
31 |
ifeq ($(BSD_KERNEL),yes) |
32 |
CPPFLAGS += -DBSD |
33 |
endif |
34 |
|
35 |
ifeq ($(DEBUG),yes) |
36 |
CPPFLAGS += -DMEMORY_DEBUG |
37 |
endif |
38 |
|
39 |
CFLAGS += $(shell sdl-config --cflags) \ |
40 |
$(shell xml2-config --cflags) \ |
41 |
-fno-strict-aliasing \ |
42 |
$(EXTRA_INCLUDES) |
43 |
|
44 |
CXXFLAGS += $(shell sdl-config --cflags) \ |
45 |
$(shell xml2-config --cflags) \ |
46 |
-fno-strict-aliasing \ |
47 |
$(EXTRA_INCLUDES) |
48 |
|
49 |
LIBS += $(shell pkg-config --libs x11) \ |
50 |
$(shell sdl-config --libs) \ |
51 |
$(shell xml2-config --libs) \ |
52 |
$(shell pkg-config --libs SDL_net) \ |
53 |
$(shell pkg-config --libs SDL_image) \ |
54 |
$(shell pkg-config --libs openal) \ |
55 |
$(shell pkg-config --libs freealut) \ |
56 |
$(shell pkg-config --libs gl) \ |
57 |
$(shell pkg-config --libs glu) \ |
58 |
$(shell pkg-config --libs cal3d) \ |
59 |
$(shell pkg-config --libs libpng) \ |
60 |
$(shell pkg-config --libs vorbis) \ |
61 |
$(shell pkg-config --libs vorbisfile) \ |
62 |
$(shell pkg-config --libs zlib) \ |
63 |
-lm \ |
64 |
$(EXTRA_LIBS) \ |
65 |
$(foreach FEATURE, $(EL_FEATURES), $($(FEATURE)_LIBS)) \ |
66 |
-lstdc++ |
67 |
|
19 |
# This works on Ubuntu 8.04 (LTS) at least |
68 |
# This works on Ubuntu 8.04 (LTS) at least |
20 |
# Install these packages in addition to those required for a standard build |
69 |
# Install these packages in addition to those required for a standard build |
21 |
# libasound2-dev libaudio-dev libartsc0-dev libesd0-dev libpulse-dev libaa1-dev libgpmg1-dev libdirectfb-dev |
70 |
# libasound2-dev libaudio-dev libartsc0-dev libesd0-dev libpulse-dev libaa1-dev libgpmg1-dev libdirectfb-dev |
Lines 61-67
COBJS=2d_objects.o 3d_objects.o \
Link Here
|
61 |
xz/CpuArch.o xz/Delta.o xz/LzFind.o xz/Lzma2Dec.o xz/Lzma2Enc.o \ |
110 |
xz/CpuArch.o xz/Delta.o xz/LzFind.o xz/Lzma2Dec.o xz/Lzma2Enc.o \ |
62 |
xz/LzmaDec.o xz/LzmaEnc.o xz/Sha256.o xz/Xz.o xz/XzCrc64.o xz/XzDec.o \ |
111 |
xz/LzmaDec.o xz/LzmaEnc.o xz/Sha256.o xz/Xz.o xz/XzCrc64.o xz/XzDec.o \ |
63 |
xz/XzEnc.o \ |
112 |
xz/XzEnc.o \ |
64 |
$(foreach FEATURE, $(FEATURES), $($(FEATURE)_COBJ)) |
113 |
$(foreach FEATURE, $(EL_FEATURES), $($(FEATURE)_COBJ)) |
65 |
|
114 |
|
66 |
CXXOBJS=achievements.o actor_init.o cal3d_wrapper.o command_queue.o \ |
115 |
CXXOBJS=achievements.o actor_init.o cal3d_wrapper.o command_queue.o \ |
67 |
context_menu.o elloggingwrapper.o engine/logging.o exceptions/extendedexception.o \ |
116 |
context_menu.o elloggingwrapper.o engine/logging.o exceptions/extendedexception.o \ |
Lines 81-87
CXXOBJS=achievements.o actor_init.o cal3d_wrapper.o command_queue.o \
Link Here
|
81 |
eye_candy/effect_mines.o eye_candy/effect_missile.o \ |
130 |
eye_candy/effect_mines.o eye_candy/effect_missile.o \ |
82 |
eye_candy/orbital_mover.o eye_candy/kepler_orbit.o \ |
131 |
eye_candy/orbital_mover.o eye_candy/kepler_orbit.o \ |
83 |
eye_candy/effect_staff.o \ |
132 |
eye_candy/effect_staff.o \ |
84 |
$(foreach FEATURE, $(FEATURES), $($(FEATURE)_CXXOBJ)) |
133 |
$(foreach FEATURE, $(EL_FEATURES), $($(FEATURE)_CXXOBJ)) |
85 |
|
134 |
|
86 |
OBJS=$(COBJS) $(CXXOBJS) |
135 |
OBJS=$(COBJS) $(CXXOBJS) |
87 |
HEADER_DIRS = . books eye_candy io pawn fsaa engine xz |
136 |
HEADER_DIRS = . books eye_candy io pawn fsaa engine xz |
Lines 90-113
HEADER_DIRS = . books eye_candy io pawn fsaa engine xz
Link Here
|
90 |
DEP_FILES=$(foreach OBJ, $(COBJS), .deps/$(OBJ).P) $(foreach OBJ, $(CXXOBJS), .deps/$(OBJ).P) |
139 |
DEP_FILES=$(foreach OBJ, $(COBJS), .deps/$(OBJ).P) $(foreach OBJ, $(CXXOBJS), .deps/$(OBJ).P) |
91 |
#(shell echo $OBJ |sed s/\.o/\.P/)) |
140 |
#(shell echo $OBJ |sed s/\.o/\.P/)) |
92 |
|
141 |
|
93 |
EXE=el.x86.linux.bin |
142 |
EXE=el |
94 |
|
|
|
95 |
ifndef CC |
96 |
CC=gcc |
97 |
endif |
98 |
ifndef CXX |
99 |
CXX=g++ |
100 |
endif |
101 |
ifndef LINK |
102 |
LINK=gcc |
103 |
endif |
104 |
|
143 |
|
105 |
all: $(EXE) |
144 |
all: $(EXE) |
106 |
|
145 |
|
107 |
# the compile targets |
146 |
# the compile targets |
108 |
$(EXE): $(OBJS) |
147 |
$(EXE): $(OBJS) |
109 |
@echo " LINK $(EXE)" |
148 |
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $(EXE) $(OBJS) $(LIBS) |
110 |
@$(LINK) $(CFLAGS) -o $(EXE) $(OBJS) $(LDFLAGS) |
|
|
111 |
|
149 |
|
112 |
#recompile on Makefile or conf change |
150 |
#recompile on Makefile or conf change |
113 |
#.depend $(OBJS): Makefile.linux make.conf |
151 |
#.depend $(OBJS): Makefile.linux make.conf |
Lines 115-139
$(EXE): $(OBJS)
Link Here
|
115 |
DEPS_MAGIC := $(shell mkdir .deps .deps/io .deps/shader .deps/eye_candy .deps/exceptions .deps/xz .deps/xml .deps/fsaa .deps/engine > /dev/null 2>&1 || :) |
153 |
DEPS_MAGIC := $(shell mkdir .deps .deps/io .deps/shader .deps/eye_candy .deps/exceptions .deps/xz .deps/xml .deps/fsaa .deps/engine > /dev/null 2>&1 || :) |
116 |
|
154 |
|
117 |
$(COBJS): %.o: %.c Makefile.linux make.conf |
155 |
$(COBJS): %.o: %.c Makefile.linux make.conf |
118 |
@echo " CC $@" |
156 |
@echo "$(CC) $(CFLAGS) $(CPPFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@" |
119 |
@if $(CC) $(CFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@; then \ |
157 |
@if $(CC) $(CFLAGS) $(CPPFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@; then \ |
120 |
mv ".deps/$@.pp" ".deps/$@.P"; \ |
158 |
mv ".deps/$@.pp" ".deps/$@.P"; \ |
121 |
else rm -f ".deps/$@.pp"; exit 1; \ |
159 |
else rm -f ".deps/$@.pp"; exit 1; \ |
122 |
fi |
160 |
fi |
123 |
|
161 |
|
124 |
$(CXXOBJS): %.o: %.cpp Makefile.linux make.conf |
162 |
$(CXXOBJS): %.o: %.cpp Makefile.linux make.conf |
125 |
@echo " CXX $@" |
163 |
@echo "$(CXX) $(CXXFLAGS) $(CPPFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@" |
126 |
@if $(CXX) $(CXXFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@; then \ |
164 |
@if $(CXX) $(CXXFLAGS) $(CPPFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@; then \ |
127 |
mv ".deps/$@.pp" ".deps/$@.P"; \ |
165 |
mv ".deps/$@.pp" ".deps/$@.P"; \ |
128 |
else rm -f ".deps/$@.pp"; exit 1; \ |
166 |
else rm -f ".deps/$@.pp"; exit 1; \ |
129 |
fi |
167 |
fi |
130 |
|
168 |
|
131 |
release: |
|
|
132 |
@$(MAKE) -f Makefile.linux 'CFLAGS=$(_CFLAGS)' 'CXXFLAGS=$(_CXXFLAGS)' |
133 |
|
134 |
static: |
135 |
@$(MAKE) -f Makefile.linux 'CFLAGS=$(_CFLAGS)' 'CXXFLAGS=$(_CXXFLAGS)' 'LDFLAGS=$(_LDFLAGS)' 'OBJS=$(OBJS) $(STATICLIBS)' |
136 |
|
137 |
clean: |
169 |
clean: |
138 |
rm -f $(OBJS) $(EXE) |
170 |
rm -f $(OBJS) $(EXE) |
139 |
|
171 |
|
Lines 154-161
gen_git_version:
Link Here
|
154 |
@rm -f console.o $(EXE) |
186 |
@rm -f console.o $(EXE) |
155 |
|
187 |
|
156 |
.depend: $(foreach HEADER_DIR, $(HEADER_DIRS), $(wildcard $(HEADER_DIR)/*.h)) |
188 |
.depend: $(foreach HEADER_DIR, $(HEADER_DIRS), $(wildcard $(HEADER_DIR)/*.h)) |
157 |
$(CC) $(CFLAGS) -MM $(patsubst %.o, %.c, $(COBJS)) >.depend |
189 |
$(CC) $(CFLAGS) $(CPPFLAGS) -MM $(patsubst %.o, %.c, $(COBJS)) >.depend |
158 |
$(CXX) $(CXXFLAGS) -MM $(patsubst %.o, %.cpp, $(CXXOBJS)) >>.depend |
190 |
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -MM $(patsubst %.o, %.cpp, $(CXXOBJS)) >>.depend |
159 |
|
191 |
|
160 |
make.conf: make.defaults |
192 |
make.conf: make.defaults |
161 |
@if (test -f $@ -a '$(UPDATE_CONF)' != 'yes'); \ |
193 |
@if (test -f $@ -a '$(UPDATE_CONF)' != 'yes'); \ |
Lines 174-180
pawn_scripts/features.inc: make.conf
Link Here
|
174 |
echo "\t#endinput" >> $@; \ |
206 |
echo "\t#endinput" >> $@; \ |
175 |
echo "#endif" >> $@; \ |
207 |
echo "#endif" >> $@; \ |
176 |
echo "#define _features_included" >> $@; \ |
208 |
echo "#define _features_included" >> $@; \ |
177 |
for feature in $(FEATURES); do \ |
209 |
for feature in $(EL_FEATURES); do \ |
178 |
echo "#define $$feature" >> $@; \ |
210 |
echo "#define $$feature" >> $@; \ |
179 |
done |
211 |
done |
180 |
|
212 |
|