1#
2# Makefile for gmake (It should run with Microsoft's nmake... I believe.)
3# $Id: Makefile.nt,v 1.31 2003/07/29 17:06:04 nan Exp $
4#
5############################################################################
6.SUFFIXES: .exe .so .dll .a .lib .o .obj .cpp .cc .c .asm .s .y .pch .h .l
7
8.c.obj:
9	$(CC) $(CFLAGS) $(IFLAGS) $(Cpost) $<
10.cpp.obj:
11	$(CXX) $(CXXFLAGS) $(IFLAGS) $(CXXpost) $<
12.cc.obj:
13	$(CXX) $(CXXFLAGS) $(IFLAGS) $(CXXpost) $<
14
15############################################################################
16CC = cl -nologo -W3
17CXX = $(CC)
18
19Cpost = -c -Tc
20CXXpost = -c -Tp
21
22#CFLAGS = -MD -Ox -Ob2 -Ow -G6 -vms $(DFLAGS) $(INCDIRS)
23CFLAGS = -MD -Od -Zi -G6 -vms $(DFLAGS) $(INCDIRS) -DWIN32CONSOLE
24
25CXXFLAGS=$(CFLAGS) -GX
26
27IFLAGS	= -Yuttinc.h
28
29O = obj
30A = lib
31SO = dll
32EXE = .exe
33AOUT = -Fe
34
35############################################################################
36BASEDIR	= .$(BDIR)
37VPATH = $(BASEDIR)
38
39#DFLAGS = -DHAVE_LIBZ -DHAVE_LIBSDL_MIXER -DHAVE_LIBVORBIS -DUSE_GETTEXT_DLL
40#DFLAGS = -DHAVE_LIBZ -DHAVE_LIBSDL_MIXER -DHAVE_LIBVORBIS -DUSE_GETTEXT_DLL -DENABLE_IPV6
41#DFLAGS = -DHAVE_LIBZ -DHAVE_LIBSDL_MIXER -DHAVE_LIBVORBIS -DUSE_GETTEXT_DLL -DCHIYO
42DFLAGS = -DHAVE_LIBZ -DHAVE_LIBSDL_MIXER -DHAVE_LIBVORBIS
43
44INCDIRS = -I$(BASEDIR) -I$(BASEDIR)/include/ \
45	  -I$(BASEDIR)/include/glib-2.0/ -I$(BASEDIR)/include/gtk-2.0/ \
46	  -I$(BASEDIR)/include/pango-1.0/ -I$(BASEDIR)/include/atk-1.0/ \
47	  -I$(BASEDIR)/lib/glib-2.0/include/ -I$(BASEDIR)/lib/gtk-2.0/include/
48
49LIBS =	$(BASEDIR)/win32/GetArgs.obj $(BASEDIR)/win32/getopt.obj \
50	$(BASEDIR)/win32/new_exception.obj $(BASEDIR)/win32/wsaerror.obj \
51	$(BASEDIR)/win32/wsainit.obj $(BASEDIR)/win32/csmash.res \
52	SDL.lib SDL_mixer.lib SDL_image.lib \
53	gtk-win32-2.0.lib glib-2.0.lib gobject-2.0.lib iconv-1.3.lib zlib.lib \
54	opengl32.lib glu32.lib winmm.lib ws2_32.lib intl.lib \
55	user32.lib gdi32.lib \
56	-link /LIBPATH:$(BASEDIR)/lib
57
58SRCS = \
59	Ball.cpp BallView.cpp BaseView.cpp Event.cpp HitMark.cpp \
60	Howto.cpp HowtoView.cpp LoadImage.cpp PenAttack.cpp \
61	PenDrive.cpp Player.cpp PlayerSelect.cpp PlayerSelectView.cpp \
62	ShakeCut.cpp Sound.cpp Title.cpp TitleView.cpp PlayerView.cpp \
63	View.cpp comPenAttack.cpp comPenDrive.cpp comPlayer.cpp \
64	comShakeCut.cpp ComTrainingPenAttack.cpp TrainingPenAttack.cpp \
65	MultiPlay.cpp TrainingPenDrive.cpp ComTrainingPenDrive.cpp \
66	TrainingSelect.cpp TrainingSelectView.cpp TrainingView.cpp \
67	PracticePlay.cpp PracticeSelect.cpp PracticeSelectView.cpp \
68	FieldView.cpp SoloPlay.cpp PlayGame.cpp Control.cpp Training.cpp \
69	Opening.cpp OpeningView.cpp MenuItem.cpp MenuItemView.cpp \
70	z.cpp parts.cpp xerror.cpp Launcher.cpp LauncherView.cpp \
71	LobbyClient.cpp LobbyClientView.cpp \
72	Logging.cpp BaseView2D.cpp FieldView2D.cpp PlayerView2D.cpp \
73	BallView2D.cpp PlayerSelectView2D.cpp TitleView2D.cpp \
74	MenuItemView2D.cpp RCFile.cpp PlayGameView.cpp Network.cpp \
75	NetPenAttack.cpp NetShakeCut.cpp NetPenDrive.cpp \
76	MultiPlayerSelect.cpp \
77	loadparts.cpp
78
79OBJS = $(SRCS:.cpp=.obj)
80
81TARGET = csmash$(EXE)
82
83###########################################################################
84all: $(TARGET)
85
86clean:
87	rm -f $(TARGET) *.$(O) *.pch *.pdb
88	cd $(BASEDIR)/win32 && $(MAKE) -f Makefile.nt CFLAGS="$(CFLAGS)" clean
89
90distclean:
91	rm -f $(TARGET) *.$(O) *.pch *.pdb *~ *.bak .depend.nt
92	cd $(BASEDIR)/win32 && $(MAKE) -f Makefile.nt CFLAGS="$(CFLAGS)" distclean
93
94# remove absolute paths from dependency file
95depend:
96	touch .depend.nt
97	makedepend -i -f.depend.nt -DMKDEP_IGN_SYSINC -D_WIN32 $(DFLAGS) \
98	  -I$(BASEDIR) $(BASEDIR)/*.cpp
99	cat .depend.nt | sed -e "s/.:\/.*\/[iI]nclude\/[^ ]*//g" \
100	| grep -v ".*:[ ]*$$" > .depend.new
101	mv .depend.new .depend.nt
102
103$(TARGET): $(OBJS) main.$(O) $(BASEDIR)/win32/all
104	$(CC) $(CFLAGS) $(AOUT)$(BASEDIR)/$@ main.$(O) $(OBJS) $(LIBS)
105
106$(OBJS) : ttinc.pch
107
108ttinc.pch: ttinc.h ttinc.cpp
109	$(CXX) $(CXXFLAGS) $(IFLAGS) -Ycttinc.h $(CXXpost) $(BASEDIR)/ttinc.cpp
110
111$(BASEDIR)/win32/all:
112	cd $(BASEDIR)/win32 && \
113	$(MAKE) -f Makefile.nt CFLAGS="$(CFLAGS)" all
114
115# include directive is not available in nmake.exe
116# If you are using gnu-make, uncomment next line.
117#-include .depend.nt
118############################################################################
119# END
120############################################################################
121