home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 106 / af106sub.adf / datatypes.LZX / 16sv_datatype / smakefile < prev    next >
Makefile  |  1997-11-09  |  5KB  |  146 lines

  1. #******************************************************************************
  2. #*
  3. #*  $VER: SMakefile 1.2 (9.11.97)
  4. #*  16sv.datatype 1.2
  5. #*
  6. #*  SAS/C makefile for 16sv.datatype
  7. #*
  8. #*  Written 1997 by Roland 'Gizzy' Mainz
  9. #*  Original example source from David N. Junod
  10. #*
  11. #******************************************************************************
  12.  
  13. MODNAME                = 16sv.datatype
  14. VERSION                = 1
  15.  
  16. LD_FILE                = $(DEST)$(MODNAME).ld
  17. LD_STRIP               = $(DEST)$(MODNAME)
  18.  
  19. C_COMPILER             = SC
  20. C_COMPILER_OPTS        = ANSI STRICT PARAMETERS=REGISTER UNSIGNEDCHARS CODE=NEAR DATA=NEAR NOSTACKCHECK NOMULTIPLEINCLUDES STRINGMERGE VERBOSE NOICONS MEMORYSIZE=HUGE ERRORREXX
  21. C_COMPILER_DEBUG       = DEBUG=LINE IGNORE=165 # DEFINE=NO_ENCODER # set this if you won't implement an encoder in yur datatype
  22. C_COMPILER_OPTIMIZE    = OPTIMIZE OPTIMIZERINLINE OPTIMIZERINLINELOCAL OPTIMIZETIME
  23.  
  24. ASSEMBLER              = a68k
  25. ASSEMBLER_OPTS         = -iinclude31: -o
  26.  
  27. LINKER                 = SLINK
  28. LINKER_OPTS            = ADDSYM SMALLCODE SMALLDATA MAP "$(DEST)$(MODNAME).map" HLSXF PLAIN SWIDTH 16 VERBOSE
  29. LINKER_OPTS_STRIP      = STRIPDEBUG VERBOSE
  30.  
  31. C_SOURCES              = classbase.c stackswap.c dispatch.c
  32. ASM_SOURCES            = classinit.asm endcode.asm
  33.  
  34. OBJECTS                = $(DEST)classinit.o $(DEST)classbase.o $(DEST)stackswap.o $(DEST)dispatch.o $(DEST)endcode.o
  35.  
  36. STARTUP                =
  37. LIBS                   = dlib:amiga31s.lib SC:lib/sc.lib ${LIBS2}
  38.  
  39.  
  40. ############################################################################################################################################################
  41. # Rebuild the project...
  42. #
  43. all: do000 do020 do040 do060 $(MODNAME).doc
  44.  
  45.  
  46. do000:
  47.     smake "DEST=000/" _app
  48.  
  49. do020:
  50.     smake "DEST=020/" "C_COMPILER_SPECIALCPU=CPU=68020" "C_COMPILER_SPECIALFLAGS=DEFINE REQUIREDAFF=AFF_68020" _app
  51.  
  52. do040:
  53.     smake "DEST=040/" "C_COMPILER_SPECIALCPU=CPU=68040" "C_COMPILER_SPECIALFLAGS=DEFINE REQUIREDAFF=AFF_68040" _app
  54.  
  55. do060:
  56.     smake "DEST=060/" "C_COMPILER_SPECIALCPU=CPU=68060" "C_COMPILER_SPECIALFLAGS=DEFINE REQUIREDAFF=AFF_68060" _app
  57.  
  58.  
  59. # entry for recusive make calls (internal target)
  60. _app: $(LD_STRIP)
  61.  
  62.  
  63. ############################################################################################################################################################
  64. # Build the stripped load file...
  65. #
  66. $(LD_STRIP):    $(LD_FILE)
  67.     $(LINKER) FROM $(LD_FILE) TO $(LD_STRIP) $(LINKER_OPTS_STRIP)
  68.  
  69.  
  70. ############################################################################################################################################################
  71. # Build the load file...
  72. #
  73. $(LD_FILE):    $(OBJECTS) $(LIBS)
  74.     $(LINKER) WITH <<
  75. FROM $(STARTUP) $(OBJECTS) TO $(LD_FILE) LIB $(LIBS) $(LINKER_OPTS)
  76. <
  77.  
  78.  
  79. ############################################################################################################################################################
  80. # Default rules...
  81. #
  82. .c.o:
  83.     $(C_COMPILER) $(C_COMPILER_OPTS) $(C_COMPILER_DEBUG) $(C_COMPILER_OPTIMIZE) $(C_COMPILER_SPECIALFLAGS) $(C_COMPILER_SPECIALCPU) "$*.c" OBJECTNAME="$@"
  84.  
  85. .asm.o:
  86.     $(ASSEMBLER) $*.asm $(ASSEMBLER_OPTS)$@
  87.  
  88. ############################################################################################################################################################
  89. # All dependencies...
  90. #
  91. $(DEST)classinit.o:        classinit.asm $(MODNAME)_rev.rev classbase.i
  92. $(DEST)classbase.o:        classbase.c classbase.h
  93.     $(C_COMPILER) $(C_COMPILER_OPTS) $(C_COMPILER_DEBUG) $(C_COMPILER_OPTIMIZE) $(C_COMPILER_SPECIALFLAGS) "$*.c" OBJECTNAME="$@"
  94. $(DEST)stackswap.o:        stackswap.c classbase.h classdata.h
  95. $(DEST)dispatch.o:         dispatch.c classbase.h classdata.h
  96. $(DEST)endcode.o:          endcode.asm
  97.  
  98. ############################################################################################################################################################
  99. # Make protos
  100. #
  101. protos:
  102.     MKProto $(C_SOURCES) TO class_iprotos.h
  103.  
  104. ############################################################################################################################################################
  105. # Bump the version...
  106. #
  107. version:
  108.     BumpRev $(VERSION) $(MODNAME)
  109.  
  110.  
  111. ############################################################################################################################################################
  112. # Delete all object files
  113. #
  114. clean: 000/clean 020/clean 040/clean 060/clean
  115.  
  116. 000/clean:
  117.     smake "DEST=000/" _clean
  118.  
  119. 020/clean:
  120.     smake "DEST=020/" _clean
  121.  
  122. 040/clean:
  123.     smake "DEST=040/" _clean
  124.  
  125. 060/clean:
  126.     smake "DEST=060/" _clean
  127.  
  128. _clean: # smakefile internal target
  129.     -Delete $(OBJECTS)
  130.     -Delete $(LD_FILE) $(LD_STRIP) $(DEST)$(MODNAME).map(%|info) \#?.BAK
  131.  
  132. ############################################################################################################################################################
  133. # Build autodoc
  134. #
  135. $(MODNAME).doc:    $(C_SOURCES)
  136.     Autodoc -I -C >$(MODNAME).doc $(C_SOURCES)
  137.  
  138.  
  139. ############################################################################################################################################################
  140. # Install the current build locally
  141. #
  142. install:
  143.     Copy CLONE FROM $(LD_STRIP) TO SYS:Classes/DataTypes/$(MODNAME)
  144.     Avail FLUSH
  145.  
  146.