home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 March / PCWorld_2001-03_cd.bin / Software / TemaCD / C#ed / Setup.exe / template.mak < prev    next >
Makefile  |  2000-08-21  |  4KB  |  173 lines

  1. all: $(PrjName)
  2.  
  3. $(PrjName): $(PrjName).$(PrjType)
  4.  
  5. $(PrjName).$(PrjType): $(FileList)
  6.  
  7. #needed so we can say foo.dll: foo.cpp and it will just work
  8. .SUFFIXES: .tlb  .il .dll .cpp .cs .vb .rc
  9.  
  10. #define the names of the compilers Microsoft ships
  11. _BC=vbc.exe
  12. _CL=cl.exe
  13. _C1=C1.dll
  14. _CX=c1xx.dll
  15. _C2=c2.dll
  16. _CS=csc.exe
  17. _ASSEM=ilasm.exe
  18.  
  19. #define the names of some common tools
  20. _TLBIMP=tlbimp.exe
  21. _TLBEXP=tlbexp.exe
  22. _REGASM=regasm.exe
  23. _REGSVR=regsvr32.exe
  24. _RSC=rc.exe
  25. _AL=al.exe
  26.  
  27. #define our basic link line for managed code
  28. _LINK=link.exe /debug
  29.  
  30. #define our basic core lib
  31. _LIBS=kernel32.lib mscoree.lib
  32.  
  33. #this is used for compiling csharp samples
  34. #reset this in individual sample makefile to your imports if required
  35. _IMPORTS=
  36.  
  37. #this is used for compiling csharp samples, that use Resources
  38. #reset this in individual sample makefile to your resource imports if required
  39. _WIN32RES=
  40.  
  41. #This is used for compiling csharp samples that use Assembly and key files
  42. #reset this in individual sample makefile to your resource imports if required
  43. _KEYFILE=
  44.  
  45. #this is used for compiling csharp samples
  46. #set the default out directory to .
  47. _OUTDIR=.
  48.  
  49. #set some command C++ flags
  50. _CCFLAGS=/com+ 
  51. _CFLAGS=$(_CCFLAGS) /c
  52.  
  53. #set debug as the default for c++
  54. _CDFLAGS=$(_CFLAGS) /Zi 
  55.  
  56. #set some command link flags
  57. _LFLAGS=
  58. _LDFLAGS=-dll
  59.  
  60. #set some common csharp flags, default is debug
  61. _CS_DLL_FLAGS=$(Flags)
  62. _CS_EXE_FLAGS=$(Flags)
  63.  
  64. #set some common vb flags
  65. _VB_DLL_FLAGS=/t:library
  66. _VB_EXE_FLAGS=/t:exe
  67.  
  68. #default compile and link for c++ files building a dll
  69. #note: name.cpp and name.dll must match
  70. .cpp.dll:
  71.     $(_CL) $(_CDFLAGS) $*.cpp
  72.     $(_LINK) $(_LDFLAGS) $(_LIBS) /out:$(_OUTDIR)\$@ $*.obj
  73.  
  74. #default compile and link for c++ files building a exe
  75. #note: name.cpp and name.dll must match
  76. .cpp.exe:
  77.     $(_CL) $(_CDFLAGS) $*.cpp
  78.     $(_LINK) $(_LFLAGS) $(_LIBS) /out:$(_OUTDIR)\$@ $*.obj
  79.  
  80. #default compile and link for c++ files building an obj
  81. #note: name.cpp and name.obj must match
  82. .cpp.obj:    
  83.     $(_CL) $(_CDFLAGS) $*.cpp
  84.  
  85. #default compile and link for c++ files building an exe
  86. #note: name.obj and name.exe must match
  87. #
  88. #referencing makefiles depend on the .obj files and not the .cpp files
  89. .obj.exe:
  90.     if not exist $(_OUTDIR) md $(_OUTDIR)
  91. #    $(_LINK) $(_LFLAGS) $(_LIBS) $*.obj
  92.     $(_LINK) $(_LFLAGS) $(_LIBS) /out:$(_OUTDIR)\$@ $**
  93.  
  94. #default compile and link for c++ files building a dll
  95. #note: name.obj and name.dll must match
  96. #
  97. #referencing makefiles depend on the .obj files and not the .cpp files
  98. .obj.dll:
  99.     if not exist $(_OUTDIR) md $(_OUTDIR)
  100.     $(_LINK) $(_LDFLAGS) $(_LIBS) /out:$(_OUTDIR)\$@ $**
  101.  
  102. #default compiling vb files
  103. #note: name.vb and name.dll must match
  104. .vb.dll:
  105.     if not exist $(_OUTDIR) md $(_OUTDIR)
  106.     $(_BC) $(_VB_DLL_FLAGS) $(_IMPORTS) /out:$(_OUTDIR)\$@ $*.vb
  107.  
  108. .vb.exe:
  109.     if not exist $(_OUTDIR) md $(_OUTDIR)
  110.     $(_BC) $(_VB_EXE_FLAGS) $(_IMPORTS)  /out:$(_OUTDIR)\$@ $*.vb
  111.  
  112. #default compiling csharp files
  113. #note: name.cs and name.dll must match
  114. #note: we will create the output dir if it does not exist
  115. .cs.dll:
  116.     if not exist $(_OUTDIR) md $(_OUTDIR)
  117.     $(_CS) $(_CS_DLL_FLAGS) $(_IMPORTS) /out:$(_OUTDIR)\$@ $** $(_WIN32RES) $(_KEYFILE)
  118.  
  119.  
  120. #default compiling csharp files
  121. #note: name.cs and name.exe must match
  122. .cs.exe:
  123.     if not exist $(_OUTDIR) md $(_OUTDIR)
  124.     $(_CS) $(_CS_EXE_FLAGS) $(_IMPORTS) /out:$(_OUTDIR)\$@ $** $(_WIN32RES) $(_KEYFILE)    
  125.  
  126.  
  127. #default importing tlb files
  128. #note: name.tlb and name.dll must match
  129. .tlb.dll:
  130.     $(_TLBIMP) $*.tlb
  131.  
  132. #default registering dlls
  133. #note: name.tlb and name.reg must match
  134. .dll.reg:
  135.     $(_COMREG) $*.dll
  136.  
  137. #.dll.reg:
  138. #    $(_COMREG) $*.dll
  139. #    $(_TLBEXP) $*.dll
  140.  
  141. #default for registering an ocx
  142.  
  143. .ocx.reg:
  144.     $(_REGSVR) /s $*.ocx
  145.  
  146. #define for compiling il to an exe
  147. .il.exe:
  148.     $(_ASSEM) $*.il
  149.  
  150. #define for compiling il to a dll
  151. .il.dll:
  152.     $(_ASSEM) $*.il /DLL
  153.  
  154. #define for compiling asm to an exe
  155. .asm.exe:
  156.     $(_ASSEM) $*.asm
  157.  
  158. #define for compiling asm to an exe
  159. .asm.dll:
  160.     $(_ASSEM) $*.asm /DLL
  161.  
  162. .res.rc:
  163.    $(_RSC) $**
  164.  
  165. default:    
  166.     nmake all
  167. clean : 
  168.     @-del /Q *.obj *.tlb *.reg
  169.  
  170. clobber :    clean
  171.         @-del /Q *.exe *.dll
  172.  
  173.