/
Makefile
99 lines (69 loc) · 2.15 KB
/
Makefile
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
# Quick Makefile by ryan c. gordon. (icculus@clutteredmind.org)
CC := gcc
LINKER := gcc
BINDIR := bin
SRCDIR := .
# must be "macosx" or "unix" or "win32" ... not all necessarily work right now.
platform := macosx
# Add zlib support? Will compress all ADD/ADDORREPLACE/PATCH operations.
# If you're going to compress the patch anyhow, this might not be wanted.
use_zlib := false
# Unix/Mac will try fork() if this is false.
use_pthread := false
# you probably shouldn't touch anything below this line.
ifeq ($(strip $(platform)),macosx)
PLATFORMDEF := -DPLATFORM_UNIX -DPLATFORM_MACOSX
PLATFORMSRCS := platform_unix.c ui_carbon.c
LDFLAGS := -framework Carbon
endif
ifeq ($(strip $(platform)),win32)
PLATFORMDEF := -DPLATFORM_WIN32
PLATFORMSRCS := platform_win32.c ui_stdio.c
endif
ifeq ($(strip $(platform)),unix)
PLATFORMDEF := -DPLATFORM_UNIX
PLATFORMSRCS := platform_unix.c ui_stdio.c
endif
#CFLAGS := $(PLATFORMDEF) -Wall -g -fsigned-char -fno-omit-frame-pointer -O0 -DDEBUG=1 -D_DEBUG=1
CFLAGS := $(PLATFORMDEF) -Wall -fsigned-char -fomit-frame-pointer -Os
ifneq ($(strip $(platform)),macosx)
CFLAGS += -mdynamic-no-pic
endif
ifeq ($(strip $(use_zlib)),true)
CFLAGS += -DUSE_ZLIB
LDFLAGS += -lz
endif
ifeq ($(strip $(use_pthread)),true)
CFLAGS += -DUSE_PTHREAD=1
ifneq ($(strip $(platform)),macosx)
LDFLAGS += -lpthread
endif
endif
MOJOPATCHSRCS := mojopatch.c md5.c $(PLATFORMSRCS)
OBJS1 := $(MOJOPATCHSRCS:.c=.o)
OBJS2 := $(OBJS1:.cpp=.o)
OBJS3 := $(OBJS2:.asm=.o)
OBJS4 := $(OBJS3:.m=.o)
MOJOPATCHOBJS := $(foreach f,$(OBJS4),$(BINDIR)/$(f))
MOJOPATCHSRCS := $(foreach f,$(MOJOPATCHSRCS),$(SRCDIR)/$(f))
.PHONY: all mojopatch clean distclean listobjs listsrcs
all : mojopatch
mojopatch : $(BINDIR)/mojopatch
$(BINDIR)/%.o: $(SRCDIR)/%.m
$(CC) -c -o $@ $< $(CFLAGS)
$(BINDIR)/%.o: $(SRCDIR)/%.cpp
$(CC) -c -o $@ $< $(CFLAGS)
$(BINDIR)/%.o: $(SRCDIR)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
$(BINDIR)/mojopatch : $(BINDIR) $(MOJOPATCHOBJS)
$(LINKER) $(LDFLAGS) -o $@ $(MOJOPATCHOBJS)
$(BINDIR):
mkdir -p $(BINDIR)
distclean : clean
clean:
rm -rf $(BINDIR)
listsrcs:
@echo $(MOJOPATCHSRCS)
listobjs:
@echo $(MOJOPATCHOBJS)
# end of Makefile ...