home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
PROGRAM
/
PROTO212.ZIP
/
EXAMPLE.ZIP
/
MAKEFILE
< prev
next >
Wrap
Text File
|
1992-01-24
|
3KB
|
93 lines
#Example of most capabilities of Solucorp Make
#Solve DOS command line limitation for command.
# It tells make how to create a command file, how to insert
# continuation character, and how to call the utility.
# for now on cc and lib may accept command line of any length.
.indir.cc = c:\cc.$$$ @c:\cc.$$$
.indir.lib = c:\lib.$$$,& @c:\cc.$$$
#Solve DOS 640k limit selectivly.
# It tells make that it must swap itself only when executing command
# cc make and proto
.huge = cc make proto
#Macro definition.
# macro SOURCE will hold a list of all C file in the current directory
# except main.c
SOURCE ? *.c -main.c
# Compiler flags for all .c file
CFLAGS = -O
# Compiler flags for some .c file
# See the comments in the .c.$(OBJEXT) rule
source2.CFLAGS = -n
# macro DIROBJ will hold a path. This path will be any of three possible.
# The first one that exist will be used.
DIROBJ | c:\obj d:\obj .
#access control.
# This tells where the object (.obj) files should be placed
# and look for.
.path.obj = $(DIROBJ)
# This tells where the header must be looked for, for depandency check.
.path.h = . ..\include \compiler\include
#These are the general rules for rebuilding a librairy.
# The preprocessor is used to create portable makefiles.
!if $d(MSDOS)
OBJEXT = obj # Extension of object files on MSDOS
LIBEXT = lib # Extension of library files on MSDOS
!else
OBJEXT = o # Extension of object files on UNIX
LIBEXT = a # Extension of library files on UNIX
!endif
#implicit rules for source translation into object file
.c.$(EXTOBJ):
# Generalisition of macro usage: Object oriented macro facility
# $& expands to the name of the current module
# $($&.CFLAGS) expand to whatever options appropriate for
# the current module being compiled.
cc -c $($&.CFLAGS) $(CFLAGS) $&.c
#General rules
# lib.lib is builted from .obj file, not .c. Macro SOURCE holds a list
# of .c. This syntax allows editing of the list.
# The builtin macro $? let you update the librairie
# with only .obj (.o) files which outdated lib.lib (lib.a).
lib.$(LIBEXT): $(SOURCE:%b.$(OBJEXT))
# True subroutine capacity, see !define lib below
!use lib $< "$?"
#Documentation preparation.
# Here is the sequence that has been used to create the files
# that are documented in document.exm.
doc:
proto -cod -fxsys.nap *.c # Produce xsys.nap file
naperm xsys.nap xsys.nai xsys.nas xsys.nah
nadoc xsys.doc xsys.nap xsys.ref # Produce the reference manual
#Automatic dependancies creation.
# The file makefile.dep is created by scanning all the sources in
# the current directory. This file is silently processed by
# Make to establish the dependancies between source files and headers.
dep:
makedep makefile *.c
# Subroutine capacity. This is the key to makefile portability
!define lib libname objects
!if $d(MSDOS)
# A "-+" is added before each obj file.
lib $(libname) $(objects:-+%s)
!else
# Update lib.a on UNIX
ar $(libname) $(objects)
ranlib $(libname)
!endif
!enddef