-
Notifications
You must be signed in to change notification settings - Fork 54
/
Makefile.win
101 lines (81 loc) · 2.68 KB
/
Makefile.win
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
99
100
101
# Makefile for MinGW by mborik & z00m
# Change `PREFIX` according your needs
# Run it with `make -f Makefile.win`
# cross-compile from ubuntu with mingw32
# make -f Makefile.win GCC=x86_64-w64-mingw32-gcc GPP=x86_64-w64-mingw32-g++ WINDRES=x86_64-w64-mingw32-windres
GCC=gcc.exe
CC=$(GCC)
GPP=g++.exe
C++=$(GPP)
PREFIX=c:/mingw32/usr/local/bin/
CREATEDIR=mkdir -p
INSTALL=cp
UNINSTALL=rm -f
WINDRES=windres.exe --preprocessor "cpp.exe"
COMPRESS=upx.exe --best -vk --overlay=skip --compress-icons=0
EXE=sjasmplus.exe
SUBDIR_BASE=sjasm
SUBDIR_LUA=lua5.4
SUBDIR_LUABRIDGE=LuaBridge/Source
SUBDIR_CRC32C=crc32c
# Ped7g: -pedantic removed due to Lua5.4 having too many warnings
CFLAGS=-DNDEBUG -O2 -Wall -static -DUSE_LUA -DMAX_PATH=PATH_MAX -I$(SUBDIR_LUA) -I$(SUBDIR_LUABRIDGE) -I$(SUBDIR_CRC32C)
CXXFLAGS=-std=gnu++17 $(CFLAGS)
LDFLAGS= -s
#sjasmplus object files
OBJS=\
$(SUBDIR_BASE)/devices.o \
$(SUBDIR_BASE)/directives.o \
$(SUBDIR_BASE)/io_cpc.o \
$(SUBDIR_BASE)/io_err.o \
$(SUBDIR_BASE)/io_nex.o \
$(SUBDIR_BASE)/io_snapshots.o \
$(SUBDIR_BASE)/io_trd.o \
$(SUBDIR_BASE)/io_tzx.o \
$(SUBDIR_BASE)/io_tape.o \
$(SUBDIR_BASE)/lua_sjasm.o \
$(SUBDIR_BASE)/parser.o \
$(SUBDIR_BASE)/reader.o \
$(SUBDIR_BASE)/relocate.o \
$(SUBDIR_BASE)/sjasm.o \
$(SUBDIR_BASE)/sjio.o \
$(SUBDIR_BASE)/support.o \
$(SUBDIR_BASE)/tables.o \
$(SUBDIR_BASE)/z80.o \
$(SUBDIR_CRC32C)/crc32c.o
#liblua objects
LUAOBJS= \
$(SUBDIR_LUA)/lcorolib.o $(SUBDIR_LUA)/lctype.o $(SUBDIR_LUA)/lutf8lib.o \
$(SUBDIR_LUA)/lapi.o $(SUBDIR_LUA)/lauxlib.o $(SUBDIR_LUA)/lbaselib.o \
$(SUBDIR_LUA)/lcode.o $(SUBDIR_LUA)/ldblib.o $(SUBDIR_LUA)/ldebug.o \
$(SUBDIR_LUA)/ldo.o $(SUBDIR_LUA)/ldump.o $(SUBDIR_LUA)/lfunc.o \
$(SUBDIR_LUA)/lgc.o $(SUBDIR_LUA)/linit.o $(SUBDIR_LUA)/liolib.o \
$(SUBDIR_LUA)/llex.o $(SUBDIR_LUA)/lmathlib.o $(SUBDIR_LUA)/lmem.o \
$(SUBDIR_LUA)/loadlib.o $(SUBDIR_LUA)/lobject.o $(SUBDIR_LUA)/lopcodes.o \
$(SUBDIR_LUA)/loslib.o $(SUBDIR_LUA)/lparser.o $(SUBDIR_LUA)/lstate.o \
$(SUBDIR_LUA)/lstring.o $(SUBDIR_LUA)/lstrlib.o $(SUBDIR_LUA)/ltable.o \
$(SUBDIR_LUA)/ltablib.o $(SUBDIR_LUA)/ltm.o $(SUBDIR_LUA)/lundump.o \
$(SUBDIR_LUA)/lvm.o $(SUBDIR_LUA)/lzio.o
RES=sjasmwin32/sjasmplus.res
.PHONY: all clean
all: $(LUAOBJS) $(OBJS) $(RES)
$(GPP) -o $(EXE) $(CXXFLAGS) $(OBJS) $(LUAOBJS) $(LDFLAGS) $(RES)
install:
$(CREATEDIR) $(PREFIX)
$(INSTALL) $(EXE) $(PREFIX)
uninstall:
$(UNINSTALL) $(PREFIX)/$(EXE)
compress:
$(COMPRESS) $(EXE)
.c.o:
$(GCC) $(CFLAGS) -o $@ -c $<
.cpp.o:
$(GPP) $(CXXFLAGS) -o $@ -c $<
$(RES): sjasmwin32/sjasmplus.mingw.rc
$(WINDRES) -i $< -O coff -o $@
clean:
$(UNINSTALL) \
$(SUBDIR_BASE)/*.o \
$(SUBDIR_LUA)/*.o \
$(SUBDIR_CRC32C)/*.o \
$(RES) $(EXE) *~