MAKEFILE.BOR 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #
  2. # Command & Conquer Red Alert(tm)
  3. # Copyright 2025 Electronic Arts Inc.
  4. #
  5. # This program is free software: you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation, either version 3 of the License, or
  8. # (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. #
  18. #***************************************************************************
  19. #** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
  20. #***************************************************************************
  21. #* *
  22. #* Project Name : Westwood Library .LIB makefile *
  23. #* *
  24. #* File Name : MAKEFILE *
  25. #* *
  26. #* Programmer : Julio R. Jerez *
  27. #* *
  28. #* Start Date : Jan 26, 1995 *
  29. #* *
  30. #* *
  31. #*-------------------------------------------------------------------------*
  32. #* *
  33. #* Required environment variables: *
  34. #* WIN32LIB = your root WWFLAT path *
  35. #* WIN32VCS = root directory for wwlib version control archive *
  36. #* COMPILER = your Watcom installation path *
  37. #* *
  38. #* Required changes to makefile: *
  39. #* PROJ_NAME = name of the library you're building *
  40. #* OBJECTS = list of objects in your library *
  41. #* *
  42. #* Optional changes to makefile: *
  43. #* PROJ_DIR = full pathname of your working directory *
  44. #* .path.xxx = full pathname where various file types live *
  45. #* *
  46. #***************************************************************************
  47. .AUTODEPEND
  48. #---------------------------------------------------------------------------
  49. # Verify user's environment
  50. #---------------------------------------------------------------------------
  51. !ifndef WIN32LIB
  52. !error WIN32LIB Environment var not configured.
  53. !endif
  54. !ifndef WIN32VCS
  55. !error WIN32VCS Environment var not configured.
  56. !endif
  57. !ifndef COMPILER
  58. !error COMPILER Environment var not configured.
  59. !endif
  60. #===========================================================================
  61. # User-defined section: the user should tailor this section for each project
  62. #===========================================================================
  63. PROJ_NAME = iff
  64. PROJ_DIR = $(WIN32LIB)\$(PROJ_NAME)
  65. LIB_DIR = $(WIN32LIB)\lib
  66. !include $(WIN32LIB)\\project.cfg
  67. #---------------------------------------------------------------------------
  68. # Project-dependent variables
  69. #---------------------------------------------------------------------------
  70. OBJECTS = \
  71. iff.obj \
  72. load.obj \
  73. loadpict.obj \
  74. writelbm.obj \
  75. lcwcomp.obj \
  76. lcwuncmp.obj \
  77. pack2pln.obj
  78. #---------------------------------------------------------------------------
  79. # Path macros: one path for each file type.
  80. # These paths are used to tell make where to find/put each file type.
  81. #---------------------------------------------------------------------------
  82. .path.asm = $(PROJ_DIR)
  83. .path.c = $(PROJ_DIR)
  84. .path.cpp = $(PROJ_DIR)
  85. .path.h = $(PROJ_DIR)
  86. .path.obj = $(PROJ_DIR)
  87. .path.lib = $(WIN32LIB)\lib
  88. .path.exe = $(PROJ_DIR)
  89. #===========================================================================
  90. # Pre-defined section: there should be little need to modify this section.
  91. #===========================================================================
  92. #---------------------------------------------------------------------------
  93. # Tools/commands
  94. #---------------------------------------------------------------------------
  95. C_CMD = bcc32
  96. CPP_CMD = bcc32
  97. LIB_CMD = tlib
  98. LINK_CMD = tlink32
  99. ASM_CMD = tasm32
  100. #---------------------------------------------------------------------------
  101. # Include & library paths
  102. # If LIB & INCLUDE are already defined, they are used in addition to the
  103. # WWLIB32 lib & include; otherwise, they're constructed from
  104. # BCDIR & TNTDIR
  105. #---------------------------------------------------------------------------
  106. LIBPATH = $(WIN32LIB)\LIB;$(COMPILER)\LIB
  107. INCLUDEPATH = $(WIN32LIB)\INCLUDE;$(COMPILER)\INCLUDE
  108. #---------------------------------------------------------------------------
  109. # Implicit rules
  110. # Compiler:
  111. # ($< = full dependent with path)
  112. # Assembler:
  113. # output obj's are constructed from .obj: & the $& macro
  114. # ($< = full dependent with path)
  115. # tasm's cfg file is not invoked as a response file.
  116. #---------------------------------------------------------------------------
  117. .c.obj:
  118. $(C_CMD) $(CC_CFG) $<
  119. .cpp.obj:
  120. $(CPP_CMD) $(CC_CFG) $<
  121. .asm.obj:
  122. $(ASM_CMD) $(ASM_CFG) $<
  123. #---------------------------------------------------------------------------
  124. # Default target: configuration files & library (in that order)
  125. #---------------------------------------------------------------------------
  126. all: $(LIB_DIR)\$(PROJ_NAME).lib
  127. #---------------------------------------------------------------------------
  128. # Build the library
  129. # The original library is deleted by the librarian
  130. # Lib objects & -+ commands are constructed by substituting within the
  131. # $^@ macro (which expands to all target dependents, separated with
  132. # spaces)
  133. # Tlib's cfg file is not invoked as a response file.
  134. # All headers & source files are copied into WIN32LIB\SRCDEBUG, for debugging
  135. #---------------------------------------------------------------------------
  136. $(LIB_DIR)\\$(PROJ_NAME).lib: $(OBJECTS)
  137. copy *.h $(WIN32LIB)\\include
  138. copy *.inc $(WIN32LIB)\\include
  139. copy *.cpp $(WIN32LIB)\\srcdebug
  140. copy *.asm $(WIN32LIB)\\srcdebug
  141. $(LIB_CMD) $< $(LIB_CFG) @&&|
  142. +-iff.obj \
  143. +-load.obj \
  144. +-loadpict.obj \
  145. +-writelbm.obj \
  146. +-lcwcomp.obj \
  147. +-lcwuncmp.obj \
  148. +-pack2pln.obj
  149. |
  150. #---------------------------------------------------------------------------
  151. # Create the test directory and make it.
  152. #---------------------------------------------------------------------------
  153. test:
  154. mkdir test
  155. cd test
  156. copy $(WWVCS)\\$(PROJ_NAME)\test\vcs.cfg
  157. update
  158. wmake
  159. cd ..