1# Makefile.in for Frodo (WIN32 DirectX with MSVC++)
2# Copyright (C) 1994-1997 Christian Bauer <cbauer@iphcip1.physik.uni-mainz.de>
3# WIN32 code by J. Richard Sladkey <jrs@world.std.com>
4
5## Version information
6VERSION   = 4
7REVISION  = 1
8
9# Choose static (L) or dynamic (D) version of C library
10LIBC      = L
11#LIBC      = D
12
13# Choose debug or optimized build
14#CFLAGS   = -W2 -Zi -DDEBUG -D_DEBUG -M$(LIBC)d
15CFLAGS    = -Ox2 -G5 -Gi- -FAsc -M$(LIBC)
16
17CXX       = cl
18RC        = rc
19ALLCFLAGS = -I. -DWIN32 -DSTRICT -D__i386 $(CFLAGS)
20ALLSCCFLAGS = -DFRODO_SC -DBATCH_CIA_CYCLES $(ALLCFLAGS)
21#ALLSCCFLAGS = -DFRODO_SC $(ALLCFLAGS)
22ALLPCCFLAGS = -DPRECISE_CPU_CYCLES=1 -DPRECISE_CIA_CYCLES=1 -DPC_IS_POINTER=0 $(ALLCFLAGS)
23LDFLAGS   = $(ALLCFLAGS)
24LIBRARIES = user32.lib kernel32.lib gdi32.lib ddraw.lib dsound.lib winmm.lib comctl32.lib comdlg32.lib shell32.lib
25#PROFILE  = /link /profile
26
27## Files
28OBJS   = main.obj Display.obj Prefs.obj SID.obj REU.obj IEC.obj 1541fs.obj \
29         1541d64.obj 1541t64.obj 1541job.obj SAM.obj ndir.obj Frodo.res
30SLOBJS = $(OBJS) C64.obj CPUC64.obj VIC.obj CIA.obj CPU1541.obj
31SCOBJS = $(OBJS) C64_SC.obj CPUC64_SC.obj VIC_SC.obj CIA_SC.obj CPU1541_SC.obj CPU_common.obj
32PCOBJS = $(OBJS) C64_PC.obj CPUC64_PC.obj VIC.obj CIA.obj CPU1541_PC.obj
33
34Frodo: Frodo.exe
35
36Frodo.exe: $(SLOBJS)
37	$(CXX) -FeFrodo.exe $(SLOBJS) $(LDFLAGS) $(LIBRARIES)
38	copy Frodo.exe ..
39
40FrodoSC: FrodoSC.exe
41
42FrodoSC.exe: $(SCOBJS)
43	$(CXX) -FeFrodoSC.exe $(SCOBJS) $(LDFLAGS) $(LIBRARIES) $(PROFILE)
44	copy FrodoSC.exe ..
45
46FrodoPC: FrodoPC.exe
47
48FrodoPC.exe: $(PCOBJS)
49	$(CXX) -FeFrodoPC.exe $(PCOBJS) $(LDFLAGS) $(LIBRARIES)
50	copy FrodoPC.exe ..
51
52Frodo.res: Frodo.rc Frodo.ico
53	$(RC) Frodo.rc
54
55all: Frodo FrodoSC FrodoPC
56
57clean:
58	rm -f $(SLOBJS) $(SCOBJS) $(PCOBJS)
59	rm -f Frodo.exe FrodoSC.exe FrodoPC.exe
60	rm -f *.ilk *.pdb *.cod *.nms *.res *.aps
61
62.cpp.obj:
63	$(CXX) $(ALLCFLAGS) -o $@ -c $*.cpp
64
65.c.obj:
66	$(CXX) $(ALLCFLAGS) -o $@ -c $*.c
67
68C64_SC.obj: C64.cpp C64.h C64_WIN32.i CmdPipe.h CPUC64.h CPU1541.h VIC.h SID.h CIA.h REU.h IEC.h 1541job.h Display.h Prefs.h
69	$(CXX) $(ALLSCCFLAGS) -Fo$@ -c $*.cpp
70
71CPUC64_SC.obj: CPUC64_SC.cpp CPUC64.h CPU_emulcycle.i CPU_common.h C64.h VIC.h SID.h CIA.h REU.h IEC.h Display.h Version.h
72	$(CXX) $(ALLSCCFLAGS) -Fo$@ -c $*.cpp
73
74CPU1541_SC.obj: CPU1541_SC.cpp CPU1541.h CPU_emulcycle.i CPU_common.h 1541job.h C64.h CIA.h Display.h
75	$(CXX) $(ALLSCCFLAGS) -Fo$@ -c $*.cpp
76
77VIC_SC.obj: VIC_SC.cpp VIC.h C64.h CPUC64.h Display.h Prefs.h
78	$(CXX) $(ALLSCCFLAGS) -Fo$@ -c $*.cpp
79
80CIA_SC.obj: CIA_SC.cpp CIA.h CPUC64.h CPU1541.h VIC.h Prefs.h
81	$(CXX) $(ALLSCCFLAGS) -Fo$@ -c $*.cpp
82
83C64_PC.obj: C64.cpp C64.h C64_WIN32.i CmdPipe.h CPUC64.h CPU1541.h VIC.h SID.h CIA.h REU.h IEC.h 1541job.h Display.h Prefs.h
84	$(CXX) $(ALLPCCFLAGS) -Fo$@ -c $*.cpp
85
86CPUC64_PC.obj: CPUC64.cpp CPUC64.h CPU_emulline.i CPU_common.h C64.h VIC.h SID.h CIA.h REU.h IEC.h Display.h Version.h
87	$(CXX) $(ALLPCCFLAGS) -DPC_IS_POINTER=0 -Fo$@ -c $*.cpp
88
89CPU1541_PC.obj: CPU1541_PC.cpp CPU1541.h CPU_emulline.i CPU_common.h 1541job.h C64.h CIA.h Display.h
90	$(CXX) $(ALLPCCFLAGS) -Fo$@ -c $*.cpp
91
92## Dependencies
93main.obj: main.cpp main.h main_WIN32.i C64.h Display.h Prefs.h SAM.h
94C64.obj: C64.cpp C64.h C64_WIN32.i CmdPipe.h CPUC64.h CPU1541.h VIC.h SID.h CIA.h REU.h IEC.h 1541job.h Display.h Prefs.h
95CmdPipe.obj: CmdPipe.h
96Display.obj: Display.cpp Display.h Display_WIN32.i main.h Prefs.h Version.h resource.h
97Prefs.obj: Prefs.cpp Prefs.h Prefs_WIN32.i Display.h main.h resource.h
98CPUC64.obj: CPUC64.cpp CPUC64.h CPU_emulline.i C64.h VIC.h SID.h CIA.h REU.h IEC.h Display.h Version.h
99CPU1541.obj: CPU1541.cpp CPU1541.h CPU_emulline.i 1541job.h C64.h CIA.h Display.h
100CPU_common.obj: CPU_common.cpp CPU_common.h
101VIC.obj: VIC.cpp VIC.h C64.h CPUC64.h Display.h Prefs.h
102SID.obj: SID.cpp SID.h SID_WIN32.i Prefs.h main.h
103CIA.obj: CIA.cpp CIA.h CPUC64.h CPU1541.h VIC.h Prefs.h
104IEC.obj: IEC.cpp IEC.h 1541fs.h 1541d64.h 1541t64.h Prefs.h Display.h
1051541fs.obj: 1541fs.cpp 1541fs.h IEC.h main.h Prefs.h
1061541fs.h: IEC.h
1071541d64.obj: 1541d64.cpp 1541d64.h IEC.h Prefs.h
1081541d64.h: IEC.h
1091541t64.obj: 1541t64.cpp 1541t64.h IEC.h Prefs.h
1101541t64.h: IEC.h
1111541job.obj: 1541job.cpp 1541job.h CPU1541.h Prefs.h
112REU.obj: REU.cpp REU.h CPUC64.h Prefs.h
113SAM.obj: SAM.cpp SAM.h C64.h CPUC64.h CPU1541.h VIC.h SID.h CIA.h
114