]> andersk Git - splint.git/blobdiff - os2/Makefile.os2
*** empty log message ***
[splint.git] / os2 / Makefile.os2
index 9cd27107f5c585df26add8748573f23434936253..3c1252a11ad62946ea6ff71da8c68997b41312f9 100644 (file)
@@ -1,6 +1,6 @@
 ##################################################\r
 ###\r
-### Makefile for OS/2 version of LCLint\r
+### Makefile for OS/2 version of splint\r
 ###\r
 ### designed for use with gmake (GNU make)\r
 ###\r
 ### Commands:\r
 ###\r
 ### make all\r
-###    builds a release version of lclint from scratch using optimizations\r
+###    builds a release version of splint from scratch using optimizations\r
 ###\r
 ### This makefile uses gmake, the gnu version of make.\r
 ###\r
-### Run gmake to build LCLint.\r
+### Run gmake to build splint.\r
 ###     gmake install to install.\r
 ###\r
 \r
-###\r
-### lclint version and date:\r
-###\r
+SHELL=/usr/bin/ksh\r
 \r
-LCL_VERSION=3.0.0.16\r
-LCL_DATE=25 Sep 2001\r
 \r
-# this gets written into the binary, add your name, your compiler settings\r
-#  etc. if you like.\r
-TODAY=Monday 25 Sep 19:40 MEST 2001\r
-ME=herbert\r
-MACHINE=i586\r
-COMPILE_MSG=\# define LCL_COMPILE \"Compiled using $(CC)\\n on OS/2 $(TODAY) $(MACHINE) by $(ME),\\n OS/2 specific subversion is 4\"\r
+###\r
+### This needs to be configured:\r
+###\r
 \r
 ### Directory containing system include files:\r
 \r
-SYSTEM_LIBDIR   = "\\\\usr\\\\include"\r
+SYSTEM_LIBDIR = e:/usr/include\r
 \r
 ### default preprocessor command:\r
 \r
-CPPCMD = "cpp "\r
+CPPCMD = cpp \r
+\r
+### directory for splint standard imports\r
+DEFAULT_LCLIMPORTDIR = .;e:/usr/lib/splint/imports\r
+\r
+### directory for splint libraries\r
+DEFAULT_LARCHPATH  = .;e:/usr/lib/splint/lib\r
+\r
+### directory for splint binary\r
+INSTALLDIR = e:/usr/bin\r
+\r
+### system include directory\r
+GCC_INCLUDE_DIR = e:/usr/include\r
+\r
+### alternate system include directory\r
+GCC_INCLUDE_DIR2 = e:/emx/include\r
 \r
 ###\r
-### Select installation directories:\r
-###\r
-### The LIBDIR and IMPORTSDIR are compiled into the binary to \r
-### select the default LARCH_PATH and LCLIMPORTDIR, which can \r
-### also be overridden by environment variables.\r
+### Cosmetic stuff (goes into the executable\r
 ###\r
-### It may be a good idea to edit these variables not only in this\r
-### makefile but also in the header file src/Headers/local_constants.h\r
-### \r
 \r
-### directory for lclint libraries\r
-LIBDIR     = \\\\usr\\\\lib\\\\lclint\\\\lib\r
+LCL_OS2 = 1\r
+TARGET_CPU = i586\r
+UNAME = OS/2 Warp 4 (Paulina)\r
 \r
-### directory for lclint standard imports\r
-IMPORTSDIR = \\\\usr\\\\lib\\\\lclint\\\\imports\r
+###\r
+### do you have bison and/or flex?\r
+### (Note: yacc will probably not work; lex might work but is not recommended.)\r
+###\r
 \r
-### these are automatically set:\r
+BISON     = bison\r
+FLEX      = flex\r
+YFLAGS    = -v -t -d\r
+LFLAGS    =\r
 \r
-SYSTEM_IMPORTSDIR = "$(IMPORTSDIR)"\r
-SYSTEM_LARCHPATH  = ".;$(LIBDIR)"\r
+###\r
+### Set automatically: splint version and date etc.\r
+###\r
 \r
-### directory for lclint binary\r
-INSTALLDIR = \\usr\\bin\r
+LCL_VERSION := $(shell grep "^VERSION" ../configure | sed "s/VERSION *= *//")\r
+LCL_DATE := $(shell date +"%d %b %Y")\r
+BUILD_DATE := $(shell date +"%c")\r
+ME := $(shell whoami)\r
+BASEDIR := $(shell (cd ..; cmd /c cd | tr '\\' '/'))\r
 \r
-### this should be the complete path for the directory where this\r
-### Makefile is, with no trailing / or spaces.\r
+LCL_COMPILE = Compiled using $(CC)\\n on $(UNAME) $(TARGET_CPU) $(BUILD_DATE) by $(ME),\\n OS/2 specific subversion is $(LCL_OS2)\r
+LCL_PARSE_VERSION = Splint $(LCL_VERSION)\r
+SPLINT_VERSION = $(LCL_PARSE_VERSION) -- $(LCL_DATE)\r
 \r
-BASEDIR = e:\\usr\\src\\lclint-$(LCL_VERSION)\r
 \r
 ###\r
 ### Then, run:\r
 ###\r
 ###    make\r
 ###\r
-### I recommend doing this in an emacs shell (or buffered terminal) so\r
-### you can scroll through the output.\r
-###\r
-### This should (hopefully) work on most systems without further changes.\r
-###\r
-### If you do not have gcc, set CC = cc (or some other compiler)\r
-### later in this file. \r
-###\r
-### It should:\r
-###     o build lclint\r
-###     o put lclint in BASEDIR/bin/lclint\r
-###\r
-### If you have installed the test suite, then do:\r
-###\r
-###    make test\r
-###\r
-### to verify lclint.\r
-###\r
-\r
-###\r
-### If you wish to install lclint in some other directory, set these \r
-### variables, and do \r
-###\r
-###    make install\r
 ###\r
 \r
-### installation command (I use emx GNUish utilities)\r
+### file-related commands (I use emx GNUish utilities)\r
 CP = cp\r
 MV = mv\r
-CAT = type\r
+CAT = cat\r
 RM = rm\r
 INSTALL = cp\r
 INSTALLFLAGS =           \r
-ECHO = "echo.exe"\r
-\r
-###\r
-### end of installation variables\r
-###\r
+ECHO = echo\r
 \r
 ###\r
-### compiler --- gcc is recommended, but lclint has been compiled\r
+### compiler --- gcc is recommended, but splint has been compiled\r
 ###              without changes using cc on several platforms.\r
 ###\r
 \r
@@ -143,143 +126,86 @@ ifeq ($(COMPILER), gcc-emx)
  CPPFLAGS=-I.\Headers -DSTDC_HEADERS=1 -DOS2\r
  CFLAGS=-Wall \r
  OFLAG=-o \r
- LINKFLAGS = -lfl\r
+ LDFLAGS = -lfl\r
  O=.o\r
- E=.exe\r
+ EXEEXT=.exe\r
 else\r
  ifeq ($(COMPILER), gcc-os2)\r
   CC = gcc -Zsys -Zomf -O3\r
   CPPFLAGS=-I.\Headers -DSTDC_HEADERS=1 -DOS2\r
   CFLAGS=-Wall \r
   OFLAG=-o \r
-  LINKFLAGS = lclint.def -lfl\r
+  LDFLAGS = splint.def -lfl\r
   O=.obj\r
-  E=.exe\r
+  EXEEXT=.exe\r
  else\r
   ifeq ($(COMPILER), icc-os2)\r
    # Shame! Normally no warnings should be turned off, but IBM's are\r
    # so stupid they warn me about each llassert(). Let's check our\r
-   # code using lclint then develop it on gcc and then move to IBMC...\r
+   # code using splint then develop it on gcc and then move to IBMC...\r
    CC = icc -q -W2 -Dunlink=unlink -O+ -G5 -Gf+ -Gi+ -Gs+ \r
    #CSet 2.01 needs this:\r
    #-D__STDC__\r
    CPPFLAGS=-I.\Headers -DSTDC_HEADERS=1 -DOS2 \r
    CFLAGS=\r
    OFLAG=-fe\r
-   LINKFLAGS = -B/noe setargv.obj fl.lib lclint.def\r
+   LDFLAGS = -B/noe setargv.obj fl.lib splint.def\r
    O=.obj\r
-   E=.exe\r
+   EXEEXT=.exe\r
   endif\r
  endif\r
 endif\r
 \r
-###\r
-### do you have bison and/or flex?\r
-### (Note: yacc will probably not work; lex might work but is not recommended.)\r
-###\r
-\r
-BISON     = bison\r
-FLEX      = flex\r
-YFLAGS    = -v -t -d\r
-LFLAGS    =\r
-\r
-###\r
-### is the test suite available? (must be full path here)\r
-###\r
-\r
-TESTDIR   = $(BASEDIR)/test\r
-\r
-### \r
-### if this Makefile is used with one of the\r
-### standard installation packages, no changes should be \r
-### necessary below this line.\r
-###\r
-\r
-.PHONY: install dobinaries dolibraries doimports test \r
-\r
-###\r
-### set this to a different directory\r
-### to install binaries elsewhere\r
-###\r
-\r
-RELEASEDIR      = $(BASEDIR)/bin\r
-\r
-all: \r
-       @$(ECHO)\r
-       @$(ECHO) "Creating configuration file. Syntax error message can be ignored..."\r
-       @$(ECHO)\r
-       $(MAKE) -f Makefile.os2 --warn-undefined-variables configinc  \r
-       @$(ECHO)\r
-       @$(ECHO) "Creating local constants header file. Syntax error messages can be ignored..."\r
-       @$(ECHO)\r
-       $(MAKE) ARGV=$(ARGV) -f Makefile.os2 --directory=$(BASEDIR)\\src --warn-undefined-variables localconstants \r
-       @$(ECHO)\r
-       @$(ECHO) "Now building lclint executable file..."\r
-       @$(ECHO)\r
-       $(MAKE) -f Makefile.os2 --directory=$(BASEDIR)\\src --warn-undefined-variables\r
-       @$(ECHO)\r
-       @$(ECHO) "Now moving lclint executable file to bin directory..."\r
-       @$(ECHO)\r
-       $(MV) $(BASEDIR)\src\lclint$E $(RELEASEDIR)\lclint$E\r
-\r
-configinc:\r
-       $(ECHO) "CC=$(CC)" >config.inc\r
-       $(ECHO) "CFLAGS=$(CFLAGS)" >>config.inc\r
-       $(ECHO) "CPPFLAGS=$(CPPFLAGS)" >>config.inc\r
-       $(ECHO) "BISON=$(BISON)" >>config.inc\r
-       $(ECHO) "FLEX=$(FLEX)" >>config.inc\r
-       $(ECHO) "YFLAGS=$(YFLAGS)" >>config.inc\r
-       $(ECHO) "LFLAGS=$(LFLAGS)" >>config.inc\r
-       $(ECHO) "SYSTEM_LIBDIR=\"$(SYSTEM_LIBDIR)\"" >>config.inc\r
-       $(ECHO) "DEFAULT_LCLIMPORTDIR=\"$(SYSTEM_IMPORTSDIR)\"" >>config.inc\r
-       $(ECHO) "DEFAULT_LARCHPATH=\"$(SYSTEM_LARCHPATH)\"" >>config.inc\r
-       $(ECHO) "DEFAULT_CPPCMD=\"$(CPPCMD)\"" >>config.inc\r
-       $(ECHO) "LINKFLAGS=$(LINKFLAGS)" >>config.inc\r
-       $(ECHO) "O=$O" >>config.inc\r
-       $(ECHO) "E=$E" >>config.inc\r
-       $(ECHO) "OFLAG=$(OFLAG)lclint$E" >>config.inc\r
-       $(ECHO) "CAT=$(CAT)" >>config.inc\r
-       $(ECHO) "MV=$(MV)" >>config.inc\r
-       $(ECHO) "CP=$(CP)" >>config.inc\r
-       $(ECHO) "ECHO=\"$(ECHO)\"" >>config.inc\r
-       $(CP) $(BASEDIR)\src\Headers\herald.h $(BASEDIR)\src\Headers\herald.last\r
-       $(ECHO) "/* herald.h - created automatically from herald.os2 and Makefile.os2 */" >$(BASEDIR)\src\Headers\herald.h\r
-       $(ECHO) "/*@constant observer char *LCL_VERSION;@*/" >>$(BASEDIR)\src\Headers\herald.h\r
-       $(ECHO) "# define LCL_VERSION \"LCLint $(LCL_VERSION) --- $(LCL_DATE)\"" >>$(BASEDIR)\src\Headers\herald.h\r
-       $(ECHO) "/*@constant observer char *LCL_PARSE_VERSION;@*/" >>$(BASEDIR)\src\Headers\herald.h\r
-       $(ECHO) "# define LCL_PARSE_VERSION \"LCLint $(LCL_VERSION)\"" >>$(BASEDIR)\src\Headers\herald.h\r
-       $(ECHO) "/*@constant observer char *LCL_COMPILE;@*/" >>$(BASEDIR)\src\Headers\herald.h\r
-       $(ECHO) "$(COMPILE_MSG)" >>$(BASEDIR)\src\Headers\herald.h\r
-\r
-###\r
-### locations of standard LCLint files\r
-###\r
-### this should NOT have to be edited if you use the standard\r
-###    installation package\r
-\r
-LCLINTBINDIR = $(BASEDIR)/bin\r
-\r
-LCLINTLIB = $(BASEDIR)/lib\r
-LCLINTIMPORTS = $(BASEDIR)/imports\r
-\r
-###\r
-### uses recursive make calls directly, so installation\r
-### will continue even if there are errors!\r
-###\r
-\r
-install: \r
-       $(MAKE) dobinaries   -f Makefile.os2\r
-       $(MAKE) dolibraries  -f Makefile.os2\r
-       $(MAKE) doimports    -f Makefile.os2\r
-\r
-dobinaries:\r
-       $(INSTALL) $(INSTALLFLAGS) $(LCLINTBINDIR)\lclint$E $(INSTALLDIR)\r
-\r
-dolibraries:\r
-       -mkdir$E $(LIBDIR)\r
-       $(CP) $(LCLINTLIB)\\* $(LIBDIR)\r
-\r
-doimports:\r
-       -mkdir$E $(IMPORTSDIR)\r
-       $(CP) $(LCLINTIMPORTS)\\* $(IMPORTSDIR)\r
-\r
+.PHONY: all clean config confclean\r
+\r
+all: make.vars ../config.h setenv.cmd\r
+       $(MAKE) --directory=../src -f Makefile.os2 all\r
+       $(MAKE) --directory=../lib -f Makefile.os2 all\r
+\r
+make.vars:\r
+       echo "CC = $(CC)" >make.vars\r
+       echo "CPPFLAGS = $(CPPFLAGS)" >>make.vars\r
+       echo "CFLAGS = $(CFLAGS)" >>make.vars\r
+       echo "OFLAG = $(OFLAG)" >>make.vars\r
+       echo "LDFLAGS = $(LDFLAGS)" >>make.vars\r
+       echo "O = $(O)" >>make.vars\r
+       echo "EXEEXT = $(EXEEXT)" >>make.vars\r
+       echo "BISON = $(BISON)" >>make.vars\r
+       echo "FLEX = $(FLEX)" >>make.vars\r
+       echo "YFLAGS = $(YFLAGS)" >>make.vars\r
+       echo "LFLAGS = $(LFLAGS)" >>make.vars\r
+       echo "CPPCMD = $(CPPCMD)" >>make.vars\r
+       echo "CP = $(CP)" >>make.vars\r
+       echo "MV = $(MV)" >>make.vars\r
+       echo "CAT = $(CAT)" >>make.vars\r
+       echo "RM = $(RM)" >>make.vars\r
+       echo "INSTALL = $(INSTALL)" >>make.vars\r
+       echo "INSTALLFLAGS = $(INSTALLFLAGS)" >>make.vars\r
+       echo "ECHO = $(ECHO)" >>make.vars\r
+\r
+../config.h: os2config.h.in\r
+       sed -e 's|@DEFAULT_LARCHPATH@|$(DEFAULT_LARCHPATH)|' \\r
+       -e 's|@DEFAULT_LCLIMPORTDIR@|$(DEFAULT_LCLIMPORTDIR)|' \\r
+       -e 's|@GCC_INCLUDE_DIR@|$(GCC_INCLUDE_DIR)|' \\r
+       -e 's|@GCC_INCLUDE_DIR2@|$(GCC_INCLUDE_DIR2)|' \\r
+       -e 's|@TARGET_CPU@|$(TARGET_CPU)|' \\r
+       -e 's|@UNAME@|$(UNAME)|' \\r
+       -e 's|@LCL_COMPILE@|$(LCL_COMPILE)|' \\r
+       -e 's|@LCL_PARSE_VERSION@|$(LCL_PARSE_VERSION)|' \\r
+       -e 's|@SPLINT_VERSION@|$(SPLINT_VERSION)|' \\r
+       -e 's|@SYSTEM_LIBDIR@|$(SYSTEM_LIBDIR)|' \\r
+       os2config.h.in >../config.h\r
+\r
+setenv.cmd: setenv.cmd.in\r
+       sed -e 's|@LCL_VERSION@|$(LCL_VERSION)|' \\r
+       -e 's|@BASEDIR@|$(BASEDIR)|' \\r
+       setenv.cmd.in | tr '/' '\\\\\\' >setenv.cmd\r
+\r
+config: make.vars ../config.h setenv.cmd\r
+\r
+confclean:\r
+       $(RM) -f make.vars ../config.h setenv.cmd\r
+\r
+clean: confclean\r
+       $(MAKE) --directory=../src -f Makefile.os2 clean\r
+       $(MAKE) --directory=../lib -f Makefile.os2 clean\r
This page took 0.048835 seconds and 4 git commands to generate.