home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 3 / AACD03.BIN / AACD / Programming / Triton / Source / SMakefile < prev    next >
Makefile  |  1998-05-23  |  15KB  |  439 lines

  1. #
  2. #  OpenTriton -- A free release of the triton.library source code
  3. #  Copyright (C) 1993-1998  Stefan Zeiger
  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 2 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, write to the Free Software
  17. #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. #
  19. #  SMakefile - Makefile for SAS/C SMake
  20. #
  21.  
  22. VERSION        = 6
  23. REVISION    = 115
  24.  
  25. SVERSION    = "6"
  26. SREVISION    = "115"
  27.  
  28. C_SOURCES    = src/triton.c src/quickhelp_prim.c src/frame_prim.c src/text_prim.c src/color_prim.c \
  29.           classes/object.c classes/displayobject.c classes/checkbox.c classes/group.c \
  30.           classes/space.c classes/text.c classes/line.c classes/button.c classes/framebox.c \
  31.           classes/dropbox.c classes/listview.c classes/palette.c classes/slider.c \
  32.           classes/scroller.c classes/cycle.c classes/string.c classes/progress.c \
  33.           classes/image.c # classes/dragitem.c src/dragndrop.c
  34. OBJECTS37    = obj37/triton.o obj37/quickhelp_prim.o obj37/frame_prim.o \
  35.           obj37/text_prim.o obj37/color_prim.o \
  36.           obj37/object.o obj37/displayobject.o obj37/checkbox.o obj37/group.o obj37/space.o \
  37.           obj37/text.o obj37/line.o obj37/button.o obj37/framebox.o obj37/dropbox.o \
  38.           obj37/listview.o obj37/palette.o obj37/slider.o obj37/scroller.o obj37/cycle.o \
  39.           obj37/string.o obj37/progress.o obj37/image.o # obj37/dragitem.o obj37/dragndrop_prim.o
  40. OBJECTS39    = obj39/triton.o obj39/quickhelp_prim.o obj39/frame_prim.o \
  41.           obj39/text_prim.o obj39/color_prim.o \
  42.           obj39/object.o obj39/displayobject.o obj39/checkbox.o obj39/group.o obj39/space.o \
  43.           obj39/text.o obj39/line.o obj39/button.o obj39/framebox.o obj39/dropbox.o \
  44.           obj39/listview.o obj39/palette.o obj39/slider.o obj39/scroller.o obj39/cycle.o \
  45.           obj39/string.o obj39/progress.o obj39/image.o # obj39/dragitem.o obj39/dragndrop_prim.o
  46.  
  47. LIBDEPS        = include/pragmas/triton_pragmas.h include/libraries/triton.h incl parts/define_classes.h \
  48.           parts/install_classes.h include
  49.  
  50. DEMOS        = demos/Demo demos/EnvPrint demos/trLogo demos/CustomClass \
  51.                   demos/ToolManager1 demos/ToolManager2 demos/ToolManager3 demos/ProgInd
  52.  
  53. BENCHMARKS    = bench/bench
  54.  
  55. LLIB_SRC    = libsrc/OpenTriton.c libsrc/Stubs.c libsrc/Boopsi.c
  56. LLIB_OBJ    = libsrc/OpenTriton.o libsrc/Stubs.o libsrc/Boopsi.o
  57.  
  58. COMPILE        = sc LIBRARYCODE LIBRARYFDFILE=triton_lib.fd \
  59.                   DEFINE=SVERSION=$(SVERSION) DEFINE=SREVISION=$(SREVISION)
  60.  
  61. OS37        = CPU=68000 objname=obj37/
  62. OS39        = define=TR_OS39 CPU=68030 objname=obj39/
  63. OS39_INIT    = define=TR_OS39 CPU=68000 objname=obj39/
  64.  
  65.  
  66. ########################################################################################## Default targets ##
  67.  
  68. default: trcl/null.trcl lib demos/Demo demos/CustomClass
  69. lib: libs37/triton.library
  70. med: default prefs/Triton libs39/triton.library
  71. all: med $(BENCHMARKS) \
  72.      demos/EnvPrint demos/CustomClass demos/trLogo \
  73.      demos/ToolManager1 demos/ToolManager2 demos/ToolManager3 demos/ProgInd \
  74.      doc prefs/trPrefsUpdate cat_deutsch
  75.  
  76.  
  77. ################################################################################## Build the linker system ##
  78.  
  79. lib/triton.lib: $(LLIB_SRC)
  80.     sc $(LLIB_SRC) objname=libsrc/
  81.     delete lib/triton.lib
  82.     # OML lib/triton.lib R $(LLIB_OBJ)
  83.     join $(LLIB_OBJ) to lib/triton.lib
  84.     copy lib/triton.lib lib:
  85.  
  86.  
  87. ######################################################################################## Build the library ##
  88.  
  89. obj37/triton.o: src/triton.c catalogs/triton.o internal.h
  90.     $(COMPILE) src/triton.c $(OS37)
  91.  
  92. obj37/dragndrop_prim.o: src/dragndrop.c internal.h
  93.     $(COMPILE) src/dragndrop.c $(OS37)
  94.  
  95. obj37/quickhelp_prim.o: src/quickhelp_prim.c internal.h
  96.     $(COMPILE) src/quickhelp_prim.c $(OS37)
  97.  
  98. obj37/text_prim.o: src/text_prim.c internal.h
  99.     $(COMPILE) src/text_prim.c $(OS37)
  100.  
  101. obj37/color_prim.o: src/color_prim.c internal.h
  102.     $(COMPILE) src/color_prim.c $(OS37)
  103.  
  104. obj37/frame_prim.o: src/frame_prim.c internal.h
  105.     $(COMPILE) src/frame_prim.c $(OS37)
  106.  
  107. obj39/triton.o: src/triton.c catalogs/triton.o
  108.     $(COMPILE) src/triton.c $(OS39)
  109.  
  110. obj39/dragndrop_prim.o: src/dragndrop.c internal.h
  111.     $(COMPILE) src/dragndrop.c $(OS39)
  112.  
  113. obj39/quickhelp_prim.o: src/quickhelp_prim.c internal.h
  114.     $(COMPILE) src/quickhelp_prim.c $(OS39)
  115.  
  116. obj39/text_prim.o: src/text_prim.c internal.h
  117.     $(COMPILE) src/text_prim.c $(OS39)
  118.  
  119. obj39/color_prim.o: src/color_prim.c internal.h
  120.     $(COMPILE) src/color_prim.c $(OS39)
  121.  
  122. obj39/frame_prim.o: src/frame_prim.c internal.h
  123.     $(COMPILE) src/frame_prim.c $(OS39)
  124.  
  125. libs37/triton.library: $(LIBDEPS) $(OBJECTS37)
  126.     sc with <<
  127.        LIBRARYCODE LIBRARYFDFILE=triton_lib.fd from $(OBJECTS37) catalogs/triton.o startup=libinit
  128.        link to libs37/triton.library LIBVERSION $(VERSION) LIBREVISION $(REVISION)
  129.     <
  130.     copy libs37/triton.library libs:
  131.     delete libs37/triton.lnk
  132.     copy triton_lib.fd FD:
  133.     flushlibs
  134.     version triton.library
  135.  
  136. libs39/triton.library: $(LIBDEPS) $(OBJECTS39)
  137.     sc with <<
  138.        LIBRARYCODE LIBRARYFDFILE=triton_lib.fd from $(OBJECTS39) catalogs/triton.o startup=libinit
  139.        link to libs39/triton.library LIBVERSION $(VERSION) LIBREVISION $(REVISION)
  140.     <
  141.     copy libs39/triton.library libs:
  142.     delete libs39/triton.lnk
  143.     flushlibs
  144.     version triton.library
  145.  
  146. include/pragmas/triton_pragmas.h: triton_lib.fd
  147.     sc:c/fd2pragma triton_lib.fd include/pragmas/triton_pragmas.h
  148.  
  149.  
  150. ############################################################################################ Default rules ##
  151.  
  152. .c.o:
  153.     $(COMPILE) $*.c
  154.  
  155. .asm.o:
  156.     sc:c/asm $*.asm
  157.  
  158.  
  159. ############################################################################################ Documentation ##
  160.  
  161. doc: doc/Triton.guide doc/Triton.dvi doc/triton.adoc doc/TritonDev.guide doc/TritonDev.dvi cleandoc
  162.  
  163. doc/triton.adoc: $(C_SOURCES)
  164.     autodoc -C -Ft:tmpfile -I $(C_SOURCES) $(LLIB_SRC) >doc/triton.adoc
  165.  
  166. doc/Triton.guide: doc/Triton.texi
  167.     tex:texinfo/makeinfo --amiga --no-split -o doc/Triton.guide doc/Triton.texi
  168.  
  169. doc/Triton.dvi: doc/Triton.texi
  170.     execute doc/MakeDVI
  171.  
  172. doc/TritonDev.guide: doc/TritonDev.texi
  173.     tex:texinfo/makeinfo --amiga --no-split -o doc/TritonDev.guide doc/TritonDev.texi
  174.  
  175. doc/TritonDev.dvi: doc/TritonDev.texi
  176.     execute doc/MakeDVI_dev
  177.  
  178.  
  179. ############################################################################################### Basic TrCl ##
  180.  
  181. trcl/trcl.o: trcl/trcl.c trcl/trcl.fd
  182.     sc trcl/trcl.c objname=trcl/ with <<
  183.        NOMODIFIED OPTIMIZE STRINGSCONST OPTIMIZERSIZE STRIPDEBUG MAPHUNK MAPSYMBOLS
  184.            STRINGSECTION=CODE NOOPTIMIZERINLINELOCAL NOOPTIMIZERSCHEDULER NOOPTIMIZERALIAS
  185.            LIBRARYCODE LIBRARYFDFILE=trcl/trcl.fd
  186.     <
  187.  
  188. trcl/null.trcl: trcl/trcl.o trcl/trcl.fd
  189.     sc to trcl/null.trcl with <<
  190.        NOMODIFIED OPTIMIZE STRINGSCONST OPTIMIZERSIZE STRIPDEBUG MAPHUNK MAPSYMBOLS
  191.            LIBRARYCODE STRINGSECTION=CODE NOOPTIMIZERINLINELOCAL NOOPTIMIZERSCHEDULER NOOPTIMIZERALIAS
  192.            LIBRARYFDFILE=trcl/trcl.fd from trcl/trcl.o startup=libinit link
  193.     <
  194.     delete trcl/\#?.lnk
  195.     sc:c/fd2pragma trcl/trcl.fd trcl/trcl_pragmas.h
  196.     copy trcl/null.trcl libs:triton/
  197.     flushlibs
  198.  
  199.  
  200. ########################################################################################### Make the demos ##
  201.  
  202. demos/Demo: demos/demo.c lib/triton.lib incl
  203.     sc LINK LIB=lib/triton.lib demos/demo.c TO demos/Demo
  204.     delete demos/Demo.lnk demos/demo.o
  205.  
  206. demos/EnvPrint: demos/envprint.c lib/triton.lib incl
  207.     sc LINK LIB=lib/triton.lib demos/envprint.c TO demos/EnvPrint
  208.     delete demos/EnvPrint.lnk demos/envprint.o
  209.  
  210. demos/trLogo: demos/trLogo.c lib/triton.lib incl
  211.     sc LINK LIB=lib/triton.lib demos/trLogo.c TO demos/trLogo
  212.     delete demos/trLogo.lnk demos/trLogo.o
  213.  
  214. demos/CustomClass: demos/customclass.c lib/triton.lib incl
  215.     sc LINK LIB=lib/triton.lib MATH=standard demos/customclass.c TO demos/CustomClass
  216.     delete demos/CustomClass.lnk demos/customclass.o
  217.  
  218. demos/ToolManager1: demos/ToolManager1.c lib/triton.lib incl
  219.     sc LINK LIB=lib/triton.lib demos/ToolManager1.c TO demos/ToolManager1
  220.     delete demos/ToolManager1.lnk demos/ToolManager1.o
  221.  
  222. demos/ToolManager2: demos/ToolManager2.c lib/triton.lib incl
  223.     sc LINK LIB=lib/triton.lib demos/ToolManager2.c TO demos/ToolManager2
  224.     delete demos/ToolManager2.lnk demos/ToolManager2.o
  225.  
  226. demos/ToolManager3: demos/ToolManager3.c lib/triton.lib incl
  227.     sc LINK LIB=lib/triton.lib demos/ToolManager3.c TO demos/ToolManager3
  228.     delete demos/ToolManager3.lnk demos/ToolManager3.o
  229.  
  230. demos/ProgInd: demos/progind.c lib/triton.lib incl
  231.     sc LINK LIB=lib/triton.lib demos/progind.c TO demos/ProgInd
  232.     delete demos/ProgInd.lnk demos/progind.o
  233.  
  234.  
  235. ############################################################################################### Benchmarks ##
  236.  
  237. bench/bench: bench/bench.c lib/triton.lib incl
  238.     sc LINK LIB=lib/triton.lib bench/bench.c TO bench/bench
  239.     delete bench/bench.lnk bench/bench.o
  240.  
  241.  
  242. ################################################################################################## Classes ##
  243.  
  244. #### v37 ####
  245.  
  246. obj37/object.o: classes/object.c
  247.     $(COMPILE) classes/object.c $(OS37)
  248.  
  249. obj37/displayobject.o: classes/displayobject.c
  250.     $(COMPILE) classes/displayobject.c $(OS37)
  251.  
  252. obj37/group.o: classes/group.c
  253.     $(COMPILE) classes/group.c $(OS37)
  254.  
  255. obj37/line.o: classes/line.c
  256.     $(COMPILE) classes/line.c $(OS37)
  257.  
  258. obj37/space.o: classes/space.c
  259.     $(COMPILE) classes/space.c $(OS37)
  260.  
  261. obj37/checkbox.o: classes/checkbox.c
  262.     $(COMPILE) classes/checkbox.c $(OS37)
  263.  
  264. obj37/text.o: classes/text.c
  265.     $(COMPILE) classes/text.c $(OS37)
  266.  
  267. obj37/button.o: classes/button.c
  268.     $(COMPILE) classes/button.c $(OS37)
  269.  
  270. obj37/framebox.o: classes/framebox.c
  271.     $(COMPILE) classes/framebox.c $(OS37)
  272.  
  273. obj37/dropbox.o: classes/dropbox.c
  274.     $(COMPILE) classes/dropbox.c $(OS37)
  275.  
  276. obj37/listview.o: classes/listview.c
  277.     $(COMPILE) classes/listview.c $(OS37)
  278.  
  279. obj37/palette.o: classes/palette.c
  280.     $(COMPILE) classes/palette.c $(OS37)
  281.  
  282. obj37/slider.o: classes/slider.c
  283.     $(COMPILE) classes/slider.c $(OS37)
  284.  
  285. obj37/scroller.o: classes/scroller.c
  286.     $(COMPILE) classes/scroller.c $(OS37)
  287.  
  288. obj37/cycle.o: classes/cycle.c
  289.     $(COMPILE) classes/cycle.c $(OS37)
  290.  
  291. obj37/string.o: classes/string.c
  292.     $(COMPILE) classes/string.c $(OS37)
  293.  
  294. obj37/progress.o: classes/progress.c
  295.     $(COMPILE) classes/progress.c $(OS37)
  296.  
  297. obj37/image.o: classes/image.c
  298.     $(COMPILE) classes/image.c $(OS37)
  299.  
  300. obj37/dragitem.o: classes/dragitem.c
  301.     $(COMPILE) classes/dragitem.c $(OS37)
  302.  
  303. #### v39 ####
  304.  
  305. obj39/object.o: classes/object.c
  306.     $(COMPILE) classes/object.c $(OS39)
  307.  
  308. obj39/displayobject.o: classes/displayobject.c
  309.     $(COMPILE) classes/displayobject.c $(OS39)
  310.  
  311. obj39/group.o: classes/group.c
  312.     $(COMPILE) classes/group.c $(OS39)
  313.  
  314. obj39/line.o: classes/line.c
  315.     $(COMPILE) classes/line.c $(OS39)
  316.  
  317. obj39/space.o: classes/space.c
  318.     $(COMPILE) classes/space.c $(OS39)
  319.  
  320. obj39/checkbox.o: classes/checkbox.c
  321.     $(COMPILE) classes/checkbox.c $(OS39)
  322.  
  323. obj39/text.o: classes/text.c
  324.     $(COMPILE) classes/text.c $(OS39)
  325.  
  326. obj39/button.o: classes/button.c
  327.     $(COMPILE) classes/button.c $(OS39)
  328.  
  329. obj39/framebox.o: classes/framebox.c
  330.     $(COMPILE) classes/framebox.c $(OS39)
  331.  
  332. obj39/dropbox.o: classes/dropbox.c
  333.     $(COMPILE) classes/dropbox.c $(OS39)
  334.  
  335. obj39/listview.o: classes/listview.c
  336.     $(COMPILE) classes/listview.c $(OS39)
  337.  
  338. obj39/palette.o: classes/palette.c
  339.     $(COMPILE) classes/palette.c $(OS39)
  340.  
  341. obj39/slider.o: classes/slider.c
  342.     $(COMPILE) classes/slider.c $(OS39)
  343.  
  344. obj39/scroller.o: classes/scroller.c
  345.     $(COMPILE) classes/scroller.c $(OS39)
  346.  
  347. obj39/cycle.o: classes/cycle.c
  348.     $(COMPILE) classes/cycle.c $(OS39)
  349.  
  350. obj39/string.o: classes/string.c
  351.     $(COMPILE) classes/string.c $(OS39)
  352.  
  353. obj39/progress.o: classes/progress.c
  354.     $(COMPILE) classes/progress.c $(OS39)
  355.  
  356. obj39/image.o: classes/image.c
  357.     $(COMPILE) classes/image.c $(OS39)
  358.  
  359. obj39/dragitem.o: classes/dragitem.c
  360.     $(COMPILE) classes/dragitem.c $(OS39)
  361.  
  362.  
  363. ############################################################################################# Prefs system ##
  364.  
  365. prefs/Triton: prefs/Triton.c lib/triton.lib incl catalogs/tritonprefs.o
  366.     sc LINK LIB=lib/triton.lib LIB=lib:reqtools.lib prefs/Triton.c catalogs/tritonprefs.o TO prefs/Triton
  367.     delete prefs/Triton.lnk prefs/Triton.o
  368.     copy prefs/Triton sys:prefs/
  369.  
  370. prefs/trPrefsUpdate: prefs/trPrefsUpdate.c lib/triton.lib incl
  371.     sc LINK prefs/trPrefsUpdate.c TO prefs/trPrefsUpdate
  372.     delete prefs/trPrefsUpdate.lnk prefs/trPrefsUpdate.o
  373.  
  374.  
  375. ################################################################################################# Catalogs ##
  376.  
  377. cat_deutsch: catalogs/deutsch/tritonprefs.catalog catalogs/deutsch/triton.catalog
  378.  
  379. catalogs/deutsch/tritonprefs.catalog: catalogs/tritonprefs.cd catalogs/deutsch/tritonprefs.ct
  380.     catcomp DESCRIPTOR=catalogs/tritonprefs.cd TRANSLATION=catalogs/deutsch/tritonprefs.ct \
  381.             CATALOG=catalogs/deutsch/tritonprefs.catalog VB=1
  382.     copy catalogs/deutsch/tritonprefs.catalog locale:catalogs/deutsch/
  383.     avail flush >NIL:
  384.  
  385. catalogs/deutsch/triton.catalog: catalogs/triton.cd catalogs/deutsch/triton.ct
  386.     catcomp DESCRIPTOR=catalogs/triton.cd TRANSLATION=catalogs/deutsch/triton.ct \
  387.             CATALOG=catalogs/deutsch/triton.catalog VB=1
  388.     copy catalogs/deutsch/triton.catalog locale:catalogs/deutsch/
  389.     avail flush >NIL:
  390.  
  391. catalogs/tritonprefs.o: catalogs/tritonprefs.cd
  392.     catcomp DESCRIPTOR=catalogs/tritonprefs.cd CFILE=catalogs/tritonprefs.h \
  393.             OBJFILE=catalogs/tritonprefs.o VB=1
  394.  
  395. catalogs/triton.o: catalogs/triton.cd
  396.     catcomp DESCRIPTOR=catalogs/triton.cd CFILE=catalogs/triton.h OBJFILE=catalogs/triton.o VB=1
  397.  
  398. ctemp: catalogs/tritonprefs.ct catalogs/triton.ct
  399.  
  400. catalogs/tritonprefs.ct: catalogs/tritonprefs.cd
  401.     catcomp DESCRIPTOR=catalogs/tritonprefs.cd CTFILE=catalogs/tritonprefs.ct VB=1
  402.  
  403. catalogs/triton.ct: catalogs/triton.cd
  404.     catcomp DESCRIPTOR=catalogs/triton.cd CTFILE=catalogs/triton.ct VB=1
  405.  
  406.  
  407. ######################################################################################### Class management ##
  408.  
  409. include/libraries/triton.h: parts/libraries_triton_1.h parts/libraries_triton_1.h classes
  410.     join parts/libraries_triton_1.h classes/\#?.pub1 classes/\#?.pub2 classes/\#?.pub3 \
  411.         parts/libraries_triton_2.h \
  412.         to include/libraries/triton.h
  413.  
  414. incl: include/libraries/triton.h include/pragmas/triton_pragmas.h
  415.     copy include include: all
  416.     copy include/clib/\#? GNU:os-include/clib/
  417.     copy include/libraries/\#? GNU:os-include/libraries/
  418.  
  419.  
  420. ################################################################################################## Install ##
  421.  
  422. clean: cleandoc
  423.     -delete obj37/\#? obj39/\#? include/libraries/\#?.h libs37/\#? libs39/\#? \
  424.             doc/\#?.dvi doc/\#?.guide doc/triton.adoc prefs/Triton prefs/trPrefsUpdate $(DEMOS) \
  425.         trcl/\#?.o trcl/\#?.trcl
  426.  
  427. cleandoc:
  428.     -delete doc/\#?.info doc/\#?.log doc/\#?.aux doc/\#?.toc doc/\#?.cp doc/\#?.fn doc/\#?.vr \
  429.             doc/\#?.tp doc/\#?.ky doc/\#?.pg doc/\#?.cps
  430.  
  431. install: installclean # all
  432.     execute installation/install
  433.  
  434. pack: # install
  435.     execute installation/pack
  436.  
  437. installclean:
  438.     -delete ram:Triton\#? all
  439.