RPA Toolkit
Added support for UNICODECFG=no in the Windows build
[rpatk.git] / rexcc / build / windows / x64 / makefile
1 !IF "$(BLDCFG)" == ""
2 BLDCFG=debug
3 !ENDIF 
4
5 !IF "$(BLDCFG)" != "release" && "$(BLDCFG)" != "debug"
6 !MESSAGE Invalid configuration "$(BLDCFG)" specified.
7 !MESSAGE You can specify a configuration when running NMAKE
8 !MESSAGE by defining the macro BLDCFG on the command line. For example:
9 !MESSAGE 
10 !MESSAGE nmake /f makefile BLDCFG=debug
11 !MESSAGE 
12 !MESSAGE Possible choices for configuration are:
13 !MESSAGE 
14 !MESSAGE "release" ( Win32 x86 release build )
15 !MESSAGE "debug"   ( Win32 x86 debug build)
16 !MESSAGE 
17 !ERROR An invalid configuration is specified.
18 !ENDIF 
19
20
21 !IF "$(OS)" == "Windows_NT"
22 NULL=
23 !ELSE 
24 NULL=nul
25 !ENDIF
26
27
28 REXCC=rexcc.exe
29 PORT=windows
30 ARCH=x64
31 SRC_DIR=..\..\..
32 DEPSRC_DIR=..\..\..\win32
33 RPATK_DIR=..\..\..\..
34 REX_LIB="$(RPATK_DIR)\rex\build\$(PORT)\$(ARCH)\out\rex.lib"
35 RLIB_LIB="$(RPATK_DIR)\rlib\build\$(PORT)\$(ARCH)\out\rlib.lib"
36 INCLUDE_DIRS=/I"$(SRC_DIR)" /I"$(SRC_DIR)\win32" /I"$(RPATK_DIR)" /I"$(RPATK_DIR)\arch\$(PORT)\$(ARCH)"
37
38 !IF "$(BLDCFG)" == "release"
39
40 OUTDIR=.\out
41 CPP_FLAGS=/nologo $(INCLUDE_DIRS)  /ML /W3 /EHsc /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /Fo"$(OUTDIR)\\" /FD /c
42 LINK_DEBUG=
43
44 !ELSEIF  "$(BLDCFG)" == "debug"
45
46 OUTDIR=.\out
47 CPP_FLAGS=/nologo $(INCLUDE_DIRS)  /MLd  /Zi /W3  /EHsc  /Od /D "WIN32" /D "_DEBUG" /D "DEBUG" /D "_CONSOLE" /YX /Fo"$(OUTDIR)\\" /FD  /c
48 LINK_DEBUG=/DEBUG
49
50 !ENDIF
51
52 !IF "$(UNICODECFG)" == "no"
53
54 CPP_FLAGS=$(CPP_FLAGS) /D "REX_CHAR_TYPE=unsigned char"
55
56 !ENDIF
57
58
59 CPP_FLAGS=$(CPP_FLAGS)
60 LIBS=$(REX_LIB) $(RLIB_LIB)
61
62 CPP=cl.exe
63 # LINK32=lib.exe
64 # LINK32_FLAGS=/nologo /LTCG /out:"$(OUTDIR)\$(TARGET)"
65 LINK32=link.exe
66 LINK32_FLAGS=$(LIBS) kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /subsystem:console /incremental:no $(LINK_DEBUG)
67
68 REXCC_OBJS= \
69         "$(OUTDIR)\rexccmain.obj" \
70         "$(OUTDIR)\rexcc.obj" \
71         "$(OUTDIR)\rexccdep.obj" \
72
73
74 ALL : "$(OUTDIR)\$(REXCC)"
75
76 CLEAN :
77         -@erase "$(OUTDIR)\$(REXCC)"
78         -@erase $(REXCC_OBJS)
79         -@erase *.pdb *.idb *.pch "$(OUTDIR)\*.pdb"
80         -@rd /S /Q "$(OUTDIR)"
81
82 "$(OUTDIR)" :
83         if not exist "$(OUTDIR)\$(NULL)" mkdir "$(OUTDIR)"
84
85
86 "$(OUTDIR)\$(REXCC)" : "$(OUTDIR)" $(REXCC_OBJS)
87         $(LINK32) @<<
88         $(LINK32_FLAGS) /out:"$(OUTDIR)\$(REXCC)" $(REXCC_OBJS)
89 <<
90
91
92 SOURCE="$(SRC_DIR)\rexcc.c"
93 "$(OUTDIR)\rexcc.obj" : $(SOURCE) "$(OUTDIR)"
94         $(CPP) $(CPP_FLAGS) $(SOURCE)
95
96 SOURCE="$(DEPSRC_DIR)\rexccdep.c"
97 "$(OUTDIR)\rexccdep.obj" : $(SOURCE) "$(OUTDIR)"
98         $(CPP) $(CPP_FLAGS) $(SOURCE)
99
100 SOURCE="$(SRC_DIR)\rexccmain.c"
101 "$(OUTDIR)\rexccmain.obj" : $(SOURCE) "$(OUTDIR)"
102         $(CPP) $(CPP_FLAGS) $(SOURCE)