1
- PREFIX := i686-w64-mingw32 -
1
+ PREFIX := i686-linux-gnu -
2
2
OBJCOPY := $(PREFIX)objcopy
3
3
CC := $(PREFIX)gcc
4
4
AS := $(PREFIX)as
5
5
6
- SDL_DIR := /home/pokeemerald/SDL2-2.0.14/i686-w64-mingw32
6
+ # Native Linux build
7
+ ifeq ($(shell uname),Linux)
8
+ CFLAGS := -m32 -fsanitize=undefined
9
+ ASFLAGS := --defsym NO_UNDERSCORE_HACK=1
10
+ PLATFORM_LIBS := -lSDL2
11
+ # Windows
12
+ else
13
+ PLATFORM_LIBS := -L$(SDL_DIR)/lib -lmingw32 -lSDLmain -lSDL.dll -lwinmm
14
+ endif
15
+
16
+ SDL_DIR := /usr/lib/i386-linux-gnu
7
17
ASM_PSEUDO_OP_CONV := sed -e 's/\.4byte/\.int/g;s/\.2byte/\.short/g'
8
18
9
19
export CPP := $(PREFIX)cpp
@@ -23,8 +33,8 @@ MODERN := 1
23
33
24
34
SHELL := /bin/bash -o pipefail
25
35
26
- ELF = $(ROM:.exe=.elf)
27
- MAP = $(ROM:.exe=.map)
36
+ # ELF = $(ROM:.exe=.elf)
37
+ # MAP = $(ROM:.exe=.map)
28
38
29
39
C_SUBDIR = src
30
40
GFLIB_SUBDIR = gflib
@@ -49,10 +59,10 @@ GCC_VER := $(shell $(CC) -dumpversion)
49
59
50
60
CC1 := $(shell $(PREFIX)gcc --print-prog-name=cc1) -quiet
51
61
override CFLAGS += -Wno-trigraphs -Wimplicit -Wparentheses -Wunused -m32 -std=gnu99 -fno-leading-underscore -fno-dce -fno-builtin -Wno-unused-function -DPORTABLE -DNONMATCHING -D UBFIX -DMODERN=$(MODERN)
52
- ROM := pokeemerald.exe
62
+ ROM := pokeemerald.elf
53
63
OBJ_DIR := build/pc
54
64
55
- CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -D NONMATCHING -D PORTABLE -D MODERN=$(MODERN) -D UBFIX -I$(SDL_DIR)/ include -L$(SDL_DIR)/lib
65
+ CPPFLAGS := -DNO_UNDERSCORE_HACK - iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -D NONMATCHING -D PORTABLE -D MODERN=$(MODERN) -D UBFIX -I/usr/ include/SDL2 -D_REENTRANT
56
66
57
67
LDFLAGS = -Map ../../$(MAP)
58
68
@@ -189,7 +199,9 @@ include songs.mk
189
199
$(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress
190
200
sound/%.bin: sound/%.aif ; $(AIF) $< $@
191
201
192
- %src/platform/sdl2.o: CFLAGS += -fleading-underscore
202
+ ifneq ($(shell uname),Linux)
203
+ %src/platform/sdl2.o: CFLAGS += -fleading-underscore -O3
204
+ endif
193
205
194
206
ifeq ($(NODEP),1)
195
207
$(C_BUILDDIR)/%.o: c_dep :=
@@ -267,9 +279,9 @@ LD_SCRIPT_DEPS :=
267
279
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
268
280
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
269
281
270
- $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
271
- cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
272
- $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
282
+ # $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
283
+ # cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
284
+ # $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
273
285
274
286
$(ROM): $(OBJS)
275
- $(CC) $(CFLAGS) -Wl,--demangle $^ -static-libgcc -L$(SDL_DIR)/lib -lmingw32 -lSDL2main -lSDL2.dll -lwinmm -lxinput -o $@
287
+ $(CC) $(CFLAGS) -Wl,--demangle $^ $(PLATFORM_LIBS) -static-libgcc -o $@
0 commit comments