############################################################################## ############################################################################## ## ## ARCHIVE HEADER INFORMATION ## ## @MMS-Description-File{ ## FILENAME = "descrip.mms", ## VERSION = "1.00", ## DATE = "", ## TIME = "", ## ## AUTHOR = "Niel Kempson", ## ADDRESS = "25 Whitethorn Drive, Cheltenham, GL52 5LL, England", ## TELEPHONE = "+44-242 579105", ## EMAIL = "kempson@tex.ac.uk (Internet)", ## ## SUPPORTED = "yes", ## ARCHIVED = "tex.ac.uk, ftp.tex.ac.uk", ## KEYWORDS = "VVcode", ## ## CODETABLE = "ISO/ASCII", ## CHECKSUM = "51492 1481 5732 57976", ## ## DOCSTRING = { This is the VVCODE description file for use with ## the VAX/VMS Module Management System (MMS) - DEC's ## equivalent to Make. ## } ## } ## ## MODULE CONTENTS ## ## [tbs] ## ## COPYRIGHT ## ## Copyright (c) 1991-1993 by Niel Kempson ## ## This program is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License as ## published by the Free Software Foundation; either version 1, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## ## In other words, you are welcome to use, share and improve this ## program. You are forbidden to forbid anyone else to use, share ## and improve what you give them. Help stamp out software-hoarding! ## ## CHANGE LOG ## ############################################################################## ############################################################################## ############################################################################## # # Local definitions for file types and compilation / linking. # # If your system is already supported it should not be necessary to modify # any part of the description file except the local definitions below. # # COMPILER/LINKER # # CC the command used to invoke the C compiler # CFLAGS compiler command line flags to be used # CCDEFINES symbols to be #defined when compiling # # LINK the command used to invoke the linker # LINKFLAGS linker command line flags to be used # # The definitions are used to compile and link as shown below: # # Compiling C programs (e.g. xx.c) # # $(CC) $(CFLAGS) $(CCDEFINES) xx.c # # Linking object files (e.g. xx.obj, yy.obj & zz.obj) # # $(LINK) $(LINKFLAGS) xx.obj,yy.obj,zz.obj,vvcode.opt/OPTION # # where vvcode.opt contains the single line: # # SYS$LIBRARY:VAXCRTL/SHAREABLE # # Here are some examples known to work. # # VAX/VMS C v3.1 # # CC = cc # CFLAGS = /WARNINGS /STANDARD=PORTABLE /DEBUG /NOOPTIMIZE # CCDEFINES = # # LINK = LINK /TRACEBACK /NODEBUG # LINKFLAGS = /TRACEBACK # ############################################################################## # Start of local definitions. ############################################################################## CC = cc CFLAGS = /WARNINGS /STANDARD=PORTABLE /DEBUG /NOOPTIMIZE CCDEFINES = LINK = LINK /TRACEBACK /NODEBUG LINKFLAGS = /TRACEBACK ############################################################################## # End of local definitions. ############################################################################## #############################################################################= # File types and default rule for compilation ############################################################################## EXE = .exe OBJ = .obj .SUFFIXES .c .h $(OBJ) $(EXE) .c.obj: $(CC) $(CFLAGS) $*.c ############################################################################## # Target Groupings ############################################################################## HDRFILES = checkos.h machine.h local.h globals.h specific.h vvutils.h OBJFILES = vvencode$(OBJ) vvdecode$(OBJ) vveparse$(OBJ) - vvutils$(OBJ) vaxvms$(OBJ) EXEFILES = vvencode$(EXE) vvdecode$(EXE) ############################################################################## # Top level targets ############################################################################## vvcode : $(EXEFILES) @ WRITE SYS$OUTPUT "VVcode built at ''F$TIME()'" clean : @ WRITE SYS$OUTPUT "Cleaning up at ''F$TIME()'" PURGE IF F$SEARCH ("*.dia;*") .NES. "" THEN $ DELETE *.dia;* IF F$SEARCH ("*.exe;*") .NES. "" THEN $ DELETE *.exe;* IF F$SEARCH ("*.lis;*") .NES. "" THEN $ DELETE *.lis;* IF F$SEARCH ("*.obj;*") .NES. "" THEN $ DELETE *.obj;* ############################################################################## # Dependencies for executables ############################################################################## vvencode$(EXE) : vvencode$(OBJ) vvutils$(OBJ) vaxvms$(OBJ) vvcode.opt $(LINK) $(LINKFLAGS) vvencode$(OBJ), vvutils$(OBJ), vaxvms$(OBJ), - vvcode.opt/OPTION vvdecode$(EXE) : vvdecode$(OBJ) vveparse$(OBJ) vvutils$(OBJ) - vaxvms$(OBJ) vvcode.opt $(LINK) $(LINKFLAGS) vvdecode$(OBJ), vveparse$(OBJ), - vvutils$(OBJ), vaxvms$(OBJ), - vvcode.opt/OPTION ############################################################################## # Dependencies for the linker option file ############################################################################## vvcode.opt : OPEN /WRITE options_file vvcode.opt WRITE options_file "SYS$LIBRARY:VAXCRTL /SHAREABLE" CLOSE options_file ############################################################################## # Dependencies for object files ############################################################################## vvencode$(OBJ) : vvencode.c $(HDRFILES) vvdecode$(OBJ) : vvdecode.c $(HDRFILES) vveparse.h vveparse$(OBJ) : vveparse.c $(HDRFILES) vveparse.h vvutils$(OBJ) : vvutils.c $(HDRFILES) vaxvms$(OBJ) : vaxvms.c $(HDRFILES)