Changeset 4642 for trunk/include/pdwin32.wat.post
- Timestamp:
- Nov 20, 2000, 5:58:15 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/pdwin32.wat.post
r4547 r4642 1 # $Id: pdwin32.wat.post,v 1. 5 2000-11-01 01:34:19bird Exp $1 # $Id: pdwin32.wat.post,v 1.6 2000-11-20 04:58:14 bird Exp $ 2 2 # 3 3 # Odin32 API … … 9 9 # Define NOTEXPDEF to remove the $(TARGET).lib and $(TARGET)exp.def rules. 10 10 # Define EXETARGET to make an executable. (This also applies to pdwin32.mk.) 11 # Define LIBTARGET to make an internal library. 11 12 # Define LOCALCLEAN if only the local directory is to be clean. 12 13 # Define CLEAN2 to invoke a second clean rule named 'clean2'. 13 14 # Define NOCLEAN to exclude the clean rule. (Remember to make your own!) 14 15 # 15 # New style: ( define NEW_STYLE)16 # New style: (!defined OLD_STYLE) 16 17 # Define NO_ALL_RULE to not make default all rule. 17 18 # Define NO_LIB_RULE to not make default lib rule. 18 # Define NO_DLL_RULE to not make default dll rule. 19 # Define NO_EXE_RULE to not make default exe rule. 19 # Define NO_MAIN_RULE to not make default main target rule. 20 20 # Define NO_LNKFILE_RULE to not make default link-file rule. 21 21 # Define NO_DEP_RULE to not make dependencies rule. 22 22 # Define NO_CLEAN_RULE to not make clean rule (same as NOCLEAN - use this!). 23 # Define NO_INTERNAL_LIBS to not include libs rule for subdirectories. 24 # Define NO_MAIN_BIN_COPY to not copy the target and sym file to the main 25 # binary directory. It is only copied to the compiler specific directory. 26 # Main bin is /bin. Compiler specific bin is /bin/debug, /bin/debug.vac36, etc. 27 # Define ADDITIONAL_DEP to add dependencies rules. 28 # 29 # Define MAKEFILE if the name of the makefile isn't "makefile". 30 # Define DEFFILE to specify another file than $(TARGET).def or $(ORGTARGET).def. 31 # Define this if your .exe file have a .def file. 32 # Define OS2RES as the names of the OS/2 .res file to create and link 33 # with the target .dll or .exe. 34 # Define LIBS as a list of all the libraries to link 35 # with the target .dll or .exe. 36 # Define SUBDIRS when you have subdirectories which should be made. 37 # dep and lib supports this fully. The rule libs are added, since we assume you 38 # makes internal libraries in the subdirectories. The libs rule is one of the 39 # dependencies of the main target. 23 40 # 24 41 25 42 !ifndef TARGET_EXTENSION 26 ! ifdef EXETARGET43 ! ifdef EXETARGET 27 44 TARGET_EXTENSION=exe 28 !else 45 ! else 46 ! ifdef LIBTARGET 47 TARGET_EXTENSION=lib 48 ! else 29 49 TARGET_EXTENSION=dll 30 !endif 31 !endif 32 33 34 !ifdef NEW_STYLE 50 ! endif 51 ! endif 52 !endif 53 54 55 !ifndef OLD_STYLE 56 57 # Set default MAKEFILE if needed 58 !ifndef MAKEFILE 59 MAKEFILE = makefile 60 !endif 61 62 # Set default ORGTARGET if needed. 63 !ifndef ORGTARGET 64 ORGTARGET=$(TARGET) 65 !endif 66 67 # Set default DEFFILE if needed. (Currently for dlls only.) 68 !ifndef DEFFILE 69 ! ifndef EXETARGET 70 DEFFILE = $(ORGTARGET).def 71 ! endif 72 !endif 73 74 # Set INTLIBS (interal) if SUBDIRS is defined and NO_INTERNAL_LIBS is undefined. 75 !ifdef SUBDIRS 76 ! ifndef NO_INTERNAL_LIBS 77 ! ifndef LIBTARGET 78 INTLIBS = libs 79 ! else 80 INTLIBS = libs_sub 81 ! endif 82 ! endif 83 !endif 84 85 86 !ifndef LIBTARGET 35 87 !ifndef EXETARGET 36 37 38 # All rule - build objs, target dll, copies target to bin and makes libs. 88 ############################################################################### 89 # DLL Target 90 ############################################################################### 91 92 # 93 # Dll: All rule - build objs, target dll, copies target to bin and makes libs. 94 # 39 95 !ifndef NO_ALL_RULE 40 96 all: $(OBJDIR) \ 97 $(INTLIBS) \ 41 98 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) \ 99 $(OBJDIR)\$(TARGET).sym \ 42 100 $(PDWIN32_BIN)\$(TARGET).$(TARGET_EXTENSION) \ 101 $(PDWIN32_BIN)\$(TARGET).sym \ 43 102 lib 44 103 !endif 45 104 46 47 # Lib rule - build importlibrary (and evt. other libs) 105 # 106 # Dll: Lib rule - build importlibrary (and evt. other libs) 107 # 48 108 !ifndef NO_LIB_RULE 49 lib: $(TARGET).lib $(PDWIN32_LIB)\$(TARGET).lib 50 !endif 51 52 53 # Dll rule - builds the target dll. 54 !ifndef NO_DLL_RULE 55 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(OBJS) $(OBJDIR)\$(TARGET).lnk 56 $(LD2) @$(OBJDIR)\$(TARGET).lnk 57 !endif 58 59 60 # Linker file - creates the parameter file passed on to the linker. 109 lib: $(ORGTARGET).lib $(PDWIN32_LIB)\$(ORGTARGET).lib 110 !endif 111 112 113 # 114 # Dll: Main target rule - builds the target dll. 115 # 116 !ifndef NO_MAIN_RULE 117 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(OBJS) $(OS2RES) $(DEFFILE) $(OBJDIR)\$(TARGET).lrf 118 $(LD2) @$(OBJDIR)\$(TARGET).lrf 119 !ifdef OS2RES 120 $(OS2RC) $(OS2RCLFLAGS) $(OS2RES) $@ 121 !endif 122 !endif 123 124 125 # 126 # Dll: Linker file - creates the parameter file passed on to the linker. 127 # 61 128 !ifndef NO_LNKFILE_RULE 62 $(OBJDIR)\$(TARGET).lnk: makefile $( TARGET).def$(PDWIN32_INCLUDE)\pdwin32.wat.post129 $(OBJDIR)\$(TARGET).lnk: makefile $(DEFFILE) $(PDWIN32_INCLUDE)\pdwin32.wat.post 63 130 $(RM) $(OBJDIR)\$(TARGET).lnk2 $@ 64 $(KDEF2WAT) $( TARGET).def$@ <<$(OBJDIR)\$(TARGET).lnk2131 $(KDEF2WAT) $(DEFFILE) $@ <<$(OBJDIR)\$(TARGET).lnk2 65 132 $(LD2FLAGS) 66 133 name $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) … … 72 139 73 140 74 # Dep rule - makes depenencies for C, C++ and Asm files.75 !ifndef NO_DEP_RULE76 dep:77 $(DEPEND) -I$(PDWIN32_INCLUDE);$(PDWIN32_INCLUDE)\win \78 *.c *.cpp *.h *.asm *.inc $(PDWIN32_INCLUDE)\*.h79 !endif80 81 141 !else # !ifndef EXETARGET 82 83 84 # All rule - build objs, target exe, copies target to bin. 142 ############################################################################### 143 # EXE Target 144 ############################################################################### 145 146 # 147 # Exe: All rule - build objs, target exe, copies target to bin. 148 # 85 149 !ifndef NO_ALL_RULE 86 150 all: $(OBJDIR) \ 151 $(INTLIBS) \ 87 152 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) \ 88 $(PDWIN32_BIN)\$(TARGET).$(TARGET_EXTENSION) 89 !endif 90 91 92 # Lib rule - dummy rule 153 $(OBJDIR)\$(TARGET).sym \ 154 $(PDWIN32_BIN)\$(TARGET).$(TARGET_EXTENSION) \ 155 $(PDWIN32_BIN)\$(TARGET).sym 156 !endif 157 158 # 159 # Exe: Lib rule - dummy rule 160 # 93 161 !ifndef NO_LIB_RULE 94 162 lib: … … 96 164 97 165 98 # Exe rule - builds the target exe. 99 !ifndef NO_EXE_RULE 100 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(OBJSNOOBJDIR) $(TARGET).def $(OBJDIR)\$(TARGET).lnk 101 $(LD2) $(LD2FLAGS) @$(OBJDIR)\$(TARGET).lnk 102 !endif 103 104 105 # Linker file - creates the parameter file passed on to the linker. 166 # 167 # Exe: Main target rule - builds the target exe. 168 # 169 !ifndef NO_MAIN_RULE 170 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(OBJS) $(OS2RES) $(DEFFILE) $(OBJDIR)\$(TARGET).lrf 171 $(LD2) @$(OBJDIR)\$(TARGET).lrf 172 !ifdef OS2RES 173 $(OS2RC) $(OS2RCLFLAGS) $(OS2RES) $@ 174 !endif 175 !endif 176 177 178 # 179 # Exe: Linker file - creates the parameter file passed on to the linker. 180 # 106 181 !ifndef NO_LNKFILE_RULE 107 $(OBJDIR)\$(TARGET).lnk: makefile $(PDWIN32_INCLUDE)\pdwin32.wat.post 182 $(OBJDIR)\$(TARGET).lnk: makefile $(PDWIN32_INCLUDE)\pdwin32.wat.post $(DEFFILE) 108 183 $(RM) $(OBJDIR)\$(TARGET).lnk2 $@ 109 $(KDEF2WAT) $( TARGET).def$@ <<$(OBJDIR)\$(TARGET).lnk2184 $(KDEF2WAT) $(DEFFILE) $@ <<$(OBJDIR)\$(TARGET).lnk2 110 185 $(LD2FLAGS) 111 186 name $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) … … 116 191 !endif 117 192 118 119 # Dep rule - makes depenencies for C, C++ and Asm files. 120 !ifndef NO_DE_PRULE 121 dep: 122 $(DEPEND) -I$(PDWIN32_INCLUDE);$(PDWIN32_INCLUDE)\win \ 123 *.c *.cpp *.h *.asm *.inc $(PDWIN32_INCLUDE)\*.h 124 !endif 125 126 127 !endif # EXETARGET 128 !endif # NEW_STYLE 129 130 131 132 133 # Copy library rule. 134 !ifndef ORGTARGET 135 $(PDWIN32_LIB)\$(TARGET).lib: $(TARGET).lib 136 !else 193 !endif # !ifndef EXETARGET !else 194 !else # !ifndef LIBTARGET 195 ############################################################################### 196 # LIB target (internal object library) 197 ############################################################################### 198 199 # 200 # Localcleanup is default for internal object libraries. 201 # 202 LOCALCLEAN = 1 203 204 205 # 206 # Lib: All rule - build objs and target library. 207 # 208 !ifndef NO_ALL_RULE 209 all: $(OBJDIR) \ 210 $(INTLIBS) \ 211 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) 212 !endif 213 214 215 # 216 # Lib: Lib rule - dummy rule 217 # 218 !ifndef NO_LIB_RULE 219 lib: 220 !endif 221 222 223 # 224 # Lib: Internal library rule. Same as the all rule. 225 # 226 !ifndef NO_INTERNAL_LIBS 227 libs: all 228 !endif 229 230 231 # 232 # Lib: Main target rule - builds the target internal library. 233 # (fixme) 234 !ifndef NO_MAIN_RULE 235 $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION): $(OBJS) 236 $(RM) $@ 237 $(ILIB) $(ILIBFLAGS) $@ @<< 238 $(OBJS: =&^ 239 ) 240 $(OBJDIR)\$(@B).lst 241 << 242 !endif 243 244 245 !endif # !ifndef LIBTARGET 246 247 248 ############################################################################### 249 # Common rules for both exe and dll, new style 250 ############################################################################### 251 252 # 253 # Common (new): Dep rule - makes depenencies for C, C++ and Asm files. 254 # 255 !ifndef NO_DEP_RULE 256 dep: dep_internal $(ADDITIONAL_DEP) 257 dep_internal: 258 $(DEPEND) $(CINCLUDES) *.c *.cpp *.h *.asm *.inc \ 259 *.rc *.dlg $(PDWIN32_INCLUDE)\*.h -robj *.orc 260 !ifdef SUBDIRS 261 $(DODIRS) "$(SUBDIRS)" $(MAKE_CMD) dep 262 !endif 263 !endif 264 265 266 # 267 # Common: Internal library rule. Make libraries in subdirectories. 268 # For makefiles with subdirectories is common to have make libraries in subdirectories. 269 # 270 !ifndef NO_INTERNAL_LIBS 271 !ifdef INTLIBS 272 $(INTLIBS): 273 $(DODIRS) "$(SUBDIRS)" $(MAKE_CMD) libs 274 !endif 275 !endif 276 277 !endif # OLD_STYLE 278 279 ############################################################################### 280 # Common rules for both exe and dll, old and new style. 281 ############################################################################### 282 283 # 284 # Common: Copy library rule. 285 # 137 286 $(PDWIN32_LIB)\$(ORGTARGET).lib: $(ORGTARGET).lib 138 !endif 287 @if not exist $(@D) $(CREATEPATH) $(@D) 139 288 $(CP) $** $@ 140 289 141 290 142 # Copy dll rule. 291 # 292 # Common: Copy dll/exe rule. 293 # 143 294 $(PDWIN32_BIN)\$(TARGET).$(TARGET_EXTENSION): $(OBJDIR)\$(TARGET).$(TARGET_EXTENSION) 295 @if not exist $(@D) $(CREATEPATH) $(@D) 296 $(CP) $** $@ 297 !ifndef NO_MAIN_BIN_COPY 298 -$(CP) $** $(@D)..\..\$(@F) 299 !endif 300 301 302 # 303 # Common: Copy sym rule. 304 # 305 $(PDWIN32_BIN)\$(TARGET).sym: $(OBJDIR)\$(TARGET).sym 306 @if not exist $(@D) $(CREATEPATH) $(@D) 307 $(CP) $** $@ 308 !ifndef NO_MAIN_BIN_COPY 309 -$(CP) $** $(@D)..\..\$(@F) 310 !endif 311 312 313 # 314 # Common: Make sym file rule. 315 # 316 $(OBJDIR)\$(TARGET).sym: $(OBJDIR)\$(TARGET).map 144 317 cd $(OBJDIR) 145 318 $(MAPSYM) $(TARGET).map 146 319 cd ..\.. 147 $(CP) $(OBJDIR)\$(TARGET).sym $(PDWIN32_BIN) 148 $(CP) $** $@ 149 -$(CP) $** $(@D)..\..\$(@F) 150 -$(CP) $(OBJDIR)\$(TARGET).sym $(@D)..\.. 151 152 320 321 322 # 323 # Common: Make library from the <>exp.def or the <>.def file. 324 # 153 325 !ifndef NOTEXPDEF 154 # make library from the <>exp.def file. 155 !ifndef ORGTARGET 156 $(TARGET).LIB: $(TARGET)exp.def 326 $(ORGTARGET).lib: $(ORGTARGET)exp.def 327 $(IMPLIB) $(IMPLIBFLAGS) $@ $** 157 328 !else 158 $(ORGTARGET).LIB: $(ORGTARGET)exp.def 159 !endif 329 $(TARGET).lib: $(DEFFILE) 160 330 $(IMPLIB) $(IMPLIBFLAGS) $@ $** 161 $(CP) $@ $(PDWIN32_LIB) 162 163 164 # make the <>exp.def file. 165 !ifndef ORGTARGET 166 $(TARGET)exp.def: $(TARGET).def 167 !else 168 $(ORGTARGET)exp.def: $(ORGTARGET).def 169 !endif 331 !endif 332 333 334 # 335 # Common: Make the <>exp.def file. 336 # 337 !ifndef NOTEXPDEF 338 $(ORGTARGET)exp.def: $(DEFFILE) 170 339 $(IMPDEF) $** $@ 171 340 !endif 172 341 173 342 174 # Create the object directory. 343 # 344 # Common: Create the object directory. 345 # 175 346 $(OBJDIR): .SYMBOLIC 176 @if not exist bin $(MKDIR) bin 177 @if not exist $(OBJDIR) $(MKDIR) $(OBJDIR) 178 179 180 # 181 # General clean rule. To clean more add it to CLEANEXTRAS! 347 @if not exist $(OBJDIR) $(CREATEPATH) $(OBJDIR) 348 349 350 # 351 # Common: General clean rule. To clean more add it to CLEANEXTRAS! 182 352 # 183 353 !ifndef NOCLEAN 184 !ifndef NO_CLEAN_RULE185 354 !ifndef CLEAN2 186 clean: .SYMBOLIC355 clean: 187 356 !else 188 357 clean: clean2 189 358 !endif 190 $(RM) *. LIB *.res *.map *.pch *.orc_asm\359 $(RM) *.lib *.res *.map *.pch \ 191 360 !if "$(OBJDIR)" != "" 192 361 $(OBJDIR)\* \ 193 362 !endif 194 363 !ifndef LOCALCLEAN 195 $(PDWIN32_LIB)\$( TARGET).LIB\196 $( TARGET)exp.def \364 $(PDWIN32_LIB)\$(ORGTARGET).lib \ 365 $(ORGTARGET)exp.def \ 197 366 $(PDWIN32_BIN)\$(TARGET).$(TARGET_EXTENSION) *.$(TARGET_EXTENSION) \ 198 367 $(PDWIN32_BIN)\$(TARGET).sym *.sym \ … … 202 371 !endif 203 372 !endif 204 !endif 205 206 373 !ifdef SUBDIRS 374 $(DODIRS) "$(SUBDIRS)" $(MAKE_CMD) clean 375 !endif 376 377 378 # 379 # Common: Include the .depend file. 380 # If the depend file don't exists we'll complain about it. 381 # 382 #!ifndef NODEP 383 #! if [$(EXISTS) .depend] == 0 384 #! include .depend 385 #! else 386 #! if [$(ECHO) .depend doesn't exist] 387 #! endif 388 #! endif 389 #!endif 390
Note:
See TracChangeset
for help on using the changeset viewer.