-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.in
89 lines (63 loc) · 1.93 KB
/
Makefile.in
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
CC = @CC@
CXX = @CXX@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
LDFLAGS = @LDFLAGS@
INSTALL = @INSTALL@
SRCDIR = @srcdir@
BUILDDIR = @builddir@
OUTDIR = $(BUILDDIR)/out
INCLUDES = $(SRCDIR)/include $(SRCDIR)/pipeworks/include $(SRCDIR)/SDL/include $(BUILDDIR)/SDL/include
LIBDIRS = .
LIBRARIES = m pipeworks-cxx SDL io collect shadenbt crypto ssl
CDIALECT = c11
CXXDIALECT = c++17
ALL_CPPFLAGS = -pthread $(foreach include,$(INCLUDES),-I$(include))
ALL_CFLAGS = -std=$(CDIALECT) $(CFLAGS)
ALL_CXXFLAGS = -std=$(CXXDIALECT) $(CXXFLAGS)
ALL_LDFLAGS = -pthread $(foreach libdir,$(LIBDIRS),-L$(libdir)) $(LDFLAGS)
ifeq ($(findstring linux,@os@),linux)
ALL_LDFLAGS += -Wl,-rpath,'$$ORIGIN' -Wl,-rpath-link,. -Wl,-z,origin
DLLEXT = .so
LIBSEARCH = "lib*.so*"
LIBDIR = .
PRUNE =
else
# TODO, add OSX Behavior
DLLEXT = .dll
LIBSEARCH = "*.dll"
LIBDIR = .
PRUNE =
endif
prefix = @prefix@
OUTPUT = game@EXEEXT@ #game on unix, game.exe on windows.
OBJECTS = $(OUTDIR)/Main.o
all: $(OUTPUT)
$(OUTPUT): $(OBJECTS) Makefile pipeworks/all SDL/all util/all libs
$(CXX) $(ALL_LDFLAGS) -o $@ $(OBJECTS) $(foreach library,$(LIBRARIES),-l$(library))
Makefile: $(SRCDIR)/Makefile.in config.status
./config.status Makefile
config.status: $(SRCDIR)/configure
./config.status --recheck
libs: pipeworks/all SDL/all util/all openssl/all
mkdir -p $(LIBDIR)
find ./*/ $(PRUNE) -name $(LIBSEARCH) -exec cp {} $(LIBDIR) \;
$(OUTDIR)/:
mkdir $(OUTDIR)
$(OUTDIR)/%.o: $(SRCDIR)/src/%.cpp | $(OUTDIR)/
$(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c -o $@ $^
$(OUTDIR)/%.o: $(SRCDIR)/src/%.c | $(OUTDIR)/
$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $^
pipeworks/%: SDL/all
+$(MAKE) -C pipeworks $*
openssl/all:
+$(MAKE) -C openssl $*
SDL/%:
+$(MAKE) -C SDL $*
util/%: openssl/all
+$(MAKE) -C util $*
clean: pipeworks/clean SDL/clean
rm -rf $(OUTPUT) $(OUTDIR)/
distclean: clean pipeworks/distclean SDL/distclean
rm -f Makefile config.status config.log