Subversion Repositories pentevo

Rev

Rev 1088 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1092 lvd 1
# AMD64 = 1
2
# LTO = 1
1088 alone 3
 
1092 lvd 4
ifdef AMD64
5
PREFIX=x86_64
6
else
7
PREFIX=i686
8
endif
1088 alone 9
 
1092 lvd 10
ifdef LTO
11
CXX_LTO=-flto
12
endif
1088 alone 13
 
1092 lvd 14
TOOLPREFIX=$(PREFIX)-w64-mingw32
1088 alone 15
 
16
 
1092 lvd 17
CXX_COMPILER=$(TOOLPREFIX)-g++
1088 alone 18
 
1092 lvd 19
RC=$(TOOLPREFIX)-windres
20
CXX=$(CXX_COMPILER)
21
LNK=$(CXX_COMPILER)
1088 alone 22
 
1092 lvd 23
CFLAGS_COMMON=-D_CRT_SECURE_NO_DEPRECATE -DUSE_SND_EXTERNAL_BUFFER -D_PREFIX_ -DMOD_SSE2 -std=c++14 -Wno-attributes -I.
1088 alone 24
 
1092 lvd 25
ifdef AMD64
26
ARCH=-march=x86-64 -msse -msse2 -mno-mmx
27
else
28
ARCH=-march=pentium-m -msse -msse2 -mno-mmx
29
endif
1088 alone 30
 
1092 lvd 31
CFLAGS_COMMON+=$(ARCH)
1088 alone 32
 
1092 lvd 33
CFLAGS_RELEASE=-O3 -static $(CXX_LTO) -fomit-frame-pointer
34
LDFLAGS_DEBUG=-O3 $(CXX_LTO) -static $(ARCH)
1088 alone 35
 
1092 lvd 36
CXXFLAGS=$(CFLAGS_COMMON) $(CFLAGS_DEBUG) $(CFLAGS_RELEASE)
1088 alone 37
 
1092 lvd 38
LDFLAGS=$(LDFLAGS_DEBUG)
1088 alone 39
 
1092 lvd 40
LIBS=-lws2_32 -lcomctl32 -lcomdlg32 -luser32 -lkernel32 -lgdi32 -lwinmm -ldxguid \
41
  -lddraw -ldsound -ldinput -ldxerr9 -lsetupapi -lgcc -lstdc++ -liphlpapi
1088 alone 42
 
1092 lvd 43
# top-level sources
44
SRCS=emul.cpp std.cpp atm.cpp cheat.cpp config.cpp dbgbpx.cpp dbgcmd.cpp dbglabls.cpp \
45
     dbgmem.cpp dbgoth.cpp dbgpaint.cpp dbgreg.cpp dbgrwdlg.cpp dbgtrace.cpp debug_tools.cpp \
46
     debug.cpp draw.cpp drawnomc.cpp draw_384.cpp dx.cpp dxerr.cpp dxovr.cpp \
47
     dxrcopy.cpp dxrend.cpp dxrendch.cpp dxrframe.cpp dxr_4bpp.cpp dxr_512.cpp \
48
     dxr_advm.cpp dxr_atm.cpp dxr_atm0.cpp dxr_atm2.cpp dxr_atm4.cpp dxr_atm6.cpp \
49
     dxr_atm7.cpp profi.cpp \
50
     dxr_atmf.cpp dxr_prof.cpp dxr_rsm.cpp dxr_text.cpp dxr_vd.cpp \
51
     emulkeys.cpp fntsrch.cpp font.cpp font14.cpp font16.cpp \
52
     font8.cpp fontatm2.cpp fontdata.cpp gs.cpp gshlbass.cpp gshle.cpp \
53
     gsz80.cpp gui.cpp hdd.cpp hddio.cpp iehelp.cpp init.cpp \
54
     input.cpp inputpc.cpp io.cpp keydefs.cpp leds.cpp mainloop.cpp \
55
     memory.cpp modem.cpp opendlg.cpp savesnd.cpp sdcard.cpp snapshot.cpp \
56
     snd_bass.cpp sound.cpp sshot_png.cpp tape.cpp util.cpp vars.cpp \
57
     vs1001.cpp wd93cmd.cpp wd93crc.cpp wd93trk.cpp fdd.cpp upd765.cpp \
58
     wldr_fdi.cpp wldr_isd.cpp wldr_pro.cpp wldr_td0.cpp wldr_trd.cpp wldr_udi.cpp \
59
     wldr_dsk.cpp wldr_ipf.cpp \
60
     z80.cpp z80asm.cpp zc.cpp savevid.cpp zxevo.cpp dxr_pentatm7.cpp zxusbnet.cpp \
61
     midi.cpp
1088 alone 62
 
1092 lvd 63
# sndrender sources
64
SRCS+=sndrender/saa1099.cpp sndrender/sndbuffer.cpp sndrender/sndchip.cpp \
65
      sndrender/sndcounter.cpp sndrender/sndrender.cpp sndrender/emul_2203.cpp
1088 alone 66
 
1092 lvd 67
# z80 sources
68
SRCS+=z80/daa_tabs.cpp z80/op_cb.cpp z80/op_dd.cpp z80/op_ddcb.cpp z80/op_ed.cpp \
69
      z80/op_fd.cpp z80/op_noprefix.cpp z80/tables.cpp
1088 alone 70
 
1092 lvd 71
OBJS=$(SRCS:.cpp=.o)
72
NAMES=$(SRCS:.cpp=)
1088 alone 73
 
1092 lvd 74
PCH=std.h.gch
1088 alone 75
 
1092 lvd 76
ifdef AMD64
77
EXE=x32/emul64.exe
78
else
79
EXE=x32/emul.exe
80
endif
1088 alone 81
 
82
 
83
 
1092 lvd 84
.PHONY: all clean nodeps
1088 alone 85
 
1092 lvd 86
nodeps: all
1088 alone 87
 
1092 lvd 88
all: $(EXE)
1088 alone 89
 
1092 lvd 90
-include $(NAMES:%=%.d)
1088 alone 91
 
1092 lvd 92
ifeq (,$(findstring $(MAKECMDGOALS),clean nodeps))
93
%.d: %.cpp 
94
	$(CXX) -MM $(CXXFLAGS) $< | sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' > $@
95
endif
1088 alone 96
 
1092 lvd 97
$(PCH): std.h
98
	$(CXX) $(CXXFLAGS) -x c++-header std.h
1088 alone 99
 
1092 lvd 100
%.o: %.cpp Makefile $(PCH)
101
	$(CXX) $(CXXFLAGS) -c -o $@ $<
1088 alone 102
 
103
 
1092 lvd 104
%.res: %.rc
105
	$(RC) -o$@ -i$<
1088 alone 106
 
1092 lvd 107
settings.o: settings.res
108
	$(RC) -o$@ -i$<
1088 alone 109
 
1092 lvd 110
$(EXE): $(OBJS) settings.o Makefile
111
	$(LNK) $(LDFLAGS) -o$@ $(OBJS) settings.o $(LIBS)
112
	strip $(EXE)
1088 alone 113
 
1092 lvd 114
clean:
115
	rm -f *.o *.res *.gch sndrender/*.o z80/*.o
116
	rm -f *.d sndrender/*.d z80/*.d
1088 alone 117