Skip to content

Latest commit

 

History

History
267 lines (203 loc) · 8.28 KB

Makefile

File metadata and controls

267 lines (203 loc) · 8.28 KB
 
Jul 6, 2001
Jul 6, 2001
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
#-----------------------------------------------------------------------------#
# PhysicsFS -- A filesystem abstraction.
#
# Please see the file LICENSE in the source's root directory.
# This file written by Ryan C. Gordon.
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
# Makefile for building PhysicsFS on Unix-like systems. Follow the
# instructions for editing this file, then run "make" on the command line.
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
# Set to your liking.
#-----------------------------------------------------------------------------#
CC = gcc
LINKER = gcc
#-----------------------------------------------------------------------------#
# If this makefile fails to detect Cygwin correctly, or you want to force
# the build process's behaviour, set it to "true" or "false" (w/o quotes).
#-----------------------------------------------------------------------------#
#cygwin := true
#cygwin := false
cygwin := autodetect
#-----------------------------------------------------------------------------#
# Set this to true if you want to create a debug build.
#-----------------------------------------------------------------------------#
#debugging := false
debugging := true
#-----------------------------------------------------------------------------#
# Set the archive types you'd like to support.
# Note that various archives may need external libraries.
#-----------------------------------------------------------------------------#
Jul 23, 2001
Jul 23, 2001
40
use_archive_zip := true
Jul 8, 2001
Jul 8, 2001
41
use_archive_grp := true
Jul 6, 2001
Jul 6, 2001
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#-----------------------------------------------------------------------------#
# Set to "true" if you'd like to build a DLL. Set to "false" otherwise.
#-----------------------------------------------------------------------------#
#build_dll := false
build_dll := true
#-----------------------------------------------------------------------------#
# Set one of the below. Currently, none of these are used.
#-----------------------------------------------------------------------------#
#use_asm = -DUSE_I386_ASM
use_asm = -DUSE_PORTABLE_C
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
# Everything below this line is probably okay.
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
Jul 28, 2001
Jul 28, 2001
66
curdate := $(shell date +%m%d%Y)
Jul 6, 2001
Jul 6, 2001
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
#-----------------------------------------------------------------------------#
# CygWin autodetect.
#-----------------------------------------------------------------------------#
ifeq ($(strip $(cygwin)),autodetect)
ifneq ($(strip $(shell gcc -v 2>&1 |grep "cygwin")),)
cygwin := true
else
cygwin := false
endif
endif
#-----------------------------------------------------------------------------#
# Platform-specific binary stuff.
#-----------------------------------------------------------------------------#
ifeq ($(strip $(cygwin)),true)
# !!! FIXME
build_dll := false
# !!! FIXME
ASM = nasmw
EXE_EXT = .exe
DLL_EXT = .dll
STATICLIB_EXT = .a
ASMOBJFMT = win32
ASMDEFS = -dC_IDENTIFIERS_UNDERSCORED
CFLAGS += -DC_IDENTIFIERS_UNDERSCORED
else
ASM = nasm
EXE_EXT =
DLL_EXT = .so
STATICLIB_EXT = .a
ASMOBJFMT = elf
endif
ifeq ($(strip $(build_dll)),true)
LIB_EXT := $(DLL_EXT)
Jul 15, 2001
Jul 15, 2001
107
SHAREDFLAGS += -shared
Jul 6, 2001
Jul 6, 2001
108
109
110
111
112
113
114
115
116
117
118
else
LIB_EXT := $(STATICLIB_EXT)
endif
#-----------------------------------------------------------------------------#
# General compiler, assembler, and linker flags.
#-----------------------------------------------------------------------------#
BINDIR := bin
SRCDIR := .
Jul 16, 2001
Jul 16, 2001
119
CFLAGS += $(use_asm) -I$(SRCDIR) -I/usr/include/readline -D_REENTRANT -fsigned-char -DPLATFORM_UNIX
Jul 7, 2001
Jul 7, 2001
120
CFLAGS += -Wall -Werror -fno-exceptions -fno-rtti -ansi -pedantic
Jul 6, 2001
Jul 6, 2001
121
122
123
124
125
126
127
128
129
130
131
132
133
LDFLAGS += -lm
ifeq ($(strip $(debugging)),true)
CFLAGS += -DDEBUG -g -fno-omit-frame-pointer
LDFLAGS += -g -fno-omit-frame-pointer
else
CFLAGS += -DNDEBUG -O2 -fomit-frame-pointer
LDFLAGS += -O2 -fomit-frame-pointer
endif
ASMFLAGS := -f $(ASMOBJFMT) $(ASMDEFS)
Jul 16, 2001
Jul 16, 2001
134
TESTLDFLAGS := -lreadline
Jul 6, 2001
Jul 6, 2001
135
136
137
138
139
140
141
142
#-----------------------------------------------------------------------------#
# Source and target names.
#-----------------------------------------------------------------------------#
BASELIBNAME := physfs
MAINLIB := $(BINDIR)/$(strip $(BASELIBNAME))$(strip $(LIB_EXT))
Jul 15, 2001
Jul 15, 2001
143
144
TESTSRCS := test/test_physfs.c
Jul 7, 2001
Jul 7, 2001
145
MAINSRCS := physfs.c platform/unix.c archivers/dir.c
Jul 6, 2001
Jul 6, 2001
146
147
ifeq ($(strip $(use_archive_zip)),true)
Jul 23, 2001
Jul 23, 2001
148
MAINSRCS += archivers/zip.c archivers/unzip.c
Jul 6, 2001
Jul 6, 2001
149
CFLAGS += -DPHYSFS_SUPPORTS_ZIP
Jul 23, 2001
Jul 23, 2001
150
LDFLAGS += -lz
Jul 6, 2001
Jul 6, 2001
151
152
endif
Jul 8, 2001
Jul 8, 2001
153
154
155
156
157
ifeq ($(strip $(use_archive_grp)),true)
MAINSRCS += archivers/grp.c
CFLAGS += -DPHYSFS_SUPPORTS_GRP
endif
Jul 15, 2001
Jul 15, 2001
158
159
TESTEXE := $(BINDIR)/test_physfs$(EXE_EXT)
Jul 6, 2001
Jul 6, 2001
160
161
162
163
164
165
166
# Rule for getting list of objects from source
MAINOBJS1 := $(MAINSRCS:.c=.o)
MAINOBJS2 := $(MAINOBJS1:.cpp=.o)
MAINOBJS3 := $(MAINOBJS2:.asm=.o)
MAINOBJS := $(foreach f,$(MAINOBJS3),$(BINDIR)/$(f))
MAINSRCS := $(foreach f,$(MAINSRCS),$(SRCDIR)/$(f))
Jul 15, 2001
Jul 15, 2001
167
168
169
170
171
172
TESTOBJS1 := $(TESTSRCS:.c=.o)
TESTOBJS2 := $(TESTOBJS1:.cpp=.o)
TESTOBJS3 := $(TESTOBJS2:.asm=.o)
TESTOBJS := $(foreach f,$(TESTOBJS3),$(BINDIR)/$(f))
TESTSRCS := $(foreach f,$(TESTSRCS),$(SRCDIR)/$(f))
Jul 6, 2001
Jul 6, 2001
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
CLEANUP = $(wildcard *.exe) $(wildcard *.obj) \
$(wildcard $(BINDIR)/*.exe) $(wildcard $(BINDIR)/*.obj) \
$(wildcard *~) $(wildcard *.err) \
$(wildcard .\#*) core
#-----------------------------------------------------------------------------#
# Rules.
#-----------------------------------------------------------------------------#
# Rules for turning source files into .o files
$(BINDIR)/%.o: $(SRCDIR)/%.cpp
$(CC) -c -o $@ $< $(CFLAGS)
$(BINDIR)/%.o: $(SRCDIR)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
$(BINDIR)/%.o: $(SRCDIR)/%.asm
$(ASM) $(ASMFLAGS) -o $@ $<
Jul 6, 2001
Jul 6, 2001
193
.PHONY: all clean distclean listobjs
Jul 6, 2001
Jul 6, 2001
194
Jul 15, 2001
Jul 15, 2001
195
all: $(BINDIR) $(MAINLIB) $(TESTEXE)
Jul 6, 2001
Jul 6, 2001
196
197
$(MAINLIB) : $(BINDIR) $(MAINOBJS)
Jul 15, 2001
Jul 15, 2001
198
199
200
$(LINKER) -o $(MAINLIB) $(LDFLAGS) $(SHAREDFLAGS) $(MAINOBJS)
$(TESTEXE) : $(MAINLIB) $(TESTOBJS)
Jul 16, 2001
Jul 16, 2001
201
$(LINKER) -o $(TESTEXE) $(LDFLAGS) $(TESTLDFLAGS) $(TESTOBJS) $(MAINLIB)
Jul 15, 2001
Jul 15, 2001
202
Jul 6, 2001
Jul 6, 2001
203
204
205
$(BINDIR):
mkdir -p $(BINDIR)
Jul 8, 2001
Jul 8, 2001
206
mkdir -p $(BINDIR)/archivers
Jul 7, 2001
Jul 7, 2001
207
mkdir -p $(BINDIR)/platform
Jul 15, 2001
Jul 15, 2001
208
mkdir -p $(BINDIR)/test
Jul 6, 2001
Jul 6, 2001
209
Jul 6, 2001
Jul 6, 2001
210
211
distclean: clean
Jul 6, 2001
Jul 6, 2001
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
clean:
rm -f $(CLEANUP)
rm -rf $(BINDIR)
listobjs:
@echo SOURCES:
@echo $(MAINSRCS)
@echo
@echo OBJECTS:
@echo $(MAINOBJS)
@echo
@echo BINARIES:
@echo $(MAINLIB)
showcfg:
@echo "Using CygWin : $(cygwin)"
@echo "Debugging : $(debugging)"
@echo "ASM flag : $(use_asm)"
@echo "Building DLLs : $(build_dll)"
@echo "Supports .ZIP : $(use_archive_zip)"
#-----------------------------------------------------------------------------#
# This section is pretty much just for Ryan's use to make distributions.
# You Probably Should Not Touch.
#-----------------------------------------------------------------------------#
# These are the files needed in a binary distribution, regardless of what
# platform is being used.
BINSCOMMON := LICENSE.TXT physfs.h
.PHONY: package msbins win32bins nocygwin
package: clean
Jul 28, 2001
Jul 28, 2001
244
cd .. ; mv physfs physfs-$(curdate) ; tar -cyvvf ./physfs-$(curdate).tar.bz2 --exclude="*CVS*" physfs-$(curdate) ; mv physfs-$(curdate) physfs
Jul 6, 2001
Jul 6, 2001
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
ifeq ($(strip $(cygwin)),true)
msbins: win32bins
win32bins: clean all
echo -e "\r\n\r\n\r\nHEY YOU.\r\n\r\n\r\nTake a look at README-win32bins.txt FIRST.\r\n\r\n\r\n--ryan. (icculus@linuxgames.com)\r\n\r\n" |zip -9rz ../physfs-win32bins-$(shell date +%m%d%Y).zip $(MAINLIB) $(EXTRAPACKAGELIBS) README-win32bins.txt
else
msbins: nocygwin
win32bins: nocygwin
nocygwin:
@echo This must be done on a Windows box in the Cygwin environment.
endif
#-----------------------------------------------------------------------------#
# That's all, folks.
#-----------------------------------------------------------------------------#
# end of Makefile ...