Received: from 128.84.254.220 by ee.lbl.gov for <vern@ee.lbl.gov> (8.6.8.1/1.43r)
	id PAA27266; Mon, 18 Apr 1994 15:08:26 -0700
Received: from CLOYD.CS.CORNELL.EDU by thialfi.cs.cornell.edu (5.67/I-1.99E)
	id AA28742; Mon, 18 Apr 94 18:08:14 -0400
Received: from iraun1.ira.uka.de by cloyd.cs.cornell.edu (5.67/I-1.99D)
	id AA19613; Mon, 18 Apr 94 18:08:19 -0400
Received: from t500i2.telematik.informatik. (actually t500i2.telematik.informatik.uni-karlsruhe.de) 
          by iraun1.ira.uka.de with SMTP (PP); Tue, 19 Apr 1994 00:07:55 +0200
Received: by t500i2.telematik.informatik.uni-karlsruhe.de (5.57/Ultrix3.0-C) 
          id AA10269; Tue, 19 Apr 94 00:09:14 +0200
From: beigl@t500i2.telematik.informatik.uni-karlsruhe.de (Michael Beigl)
Message-Id: <9404182209.AA10269@t500i2.telematik.informatik.uni-karlsruhe.de>
Subject: Makefile-TurboC
To: vern@cs.cornell.edu
Date: Tue, 19 Apr 1994 00:09:13 +0200 (MET DST)
X-Mailer: ELM [version 2.4 PL22]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 2739

Hello

Here are some additional adjustments to my Makefile. I was using "pure" DOS
and an old Turbo C++ 1.0 version, so I had some problems with systemtools
like mv etc. and problems with variables in my Makefile.

Now follows my Makefile
############################################################################
# make file for "flex" tool

# @(#) $Header: Makefile,v 2.3 89/06/20 17:27:12 vern Exp $ (LBL)

# Porting considerations:
#
#    For BSD machines:
#  CFLAGS =
#  LDFLAGS = -s
#  LINK = $(CC) $(CFLAGS) -o flex $(LDFLAGS) $(FLEXOBJS)
#  SKELETON_DIR = .
#  SKELETON_FILE = flex.skel
#  SKELFLAGS = -DDEFAULT_SKELETON_FILE=\"$(SKELETON_DIR)/$(SKELETON_FILE)\"
#  O = o
#  YTAB = y.tab
#  FLEX = ./flex
#
#    For System V Unix or Vax/VMS machines, merely add:
#  CFLAGS = -DSYS_V
#
#    For MS-DOS, Turbo C:
CC = tcc
# -2+ 286 Options
CFLAGS = -DSYS_V -DMS_DOS -O -G -Z -ml -v -2
# /3 enable 32 bit processing
# /ye expanded memory swapping
# /yx extended memory swapping
LINK = tlink @flex.lnk/c/x/v/3/ye
SKELETON_DIR = .
SKELETON_FILE = flex.skl
SKELFLAGS = -DDEFAULT_SKELETON_FILE="$(SKELETON_DIR)/$(SKELETON_FILE)"
O = obj
EXE = .exe
YTAB = y_tab
FLEX = flex
YACC = /yacc/byacc

#
# the first time around use "make first_flex"
#

FLEX_FLAGS =

FLEXOBJS = \
	ccl.$O \
	dfa.$O \
	ecs.$O \
	gen.$O \
	main.$O \
	misc.$O \
	nfa.$O \
	parse.$O \
	scan.$O \
	sym.$O \
	tblcmp.$O \
	yylex.$O

FLEX_C_SOURCES = \
	ccl.c \
	dfa.c \
	ecs.c \
	gen.c \
	main.c \
	misc.c \
	nfa.c \
	parse.c \
	scan.c \
	sym.c \
	tblcmp.c \
	yylex.c

FLEX_C_SOURCES_1 = \
	ccl.c \
	dfa.c \
	ecs.c \
	gen.c \
	main.c \
	misc.c

FLEX_C_SOURCES_2 = \
	nfa.c \
	parse.c \
	scan.c \
	sym.c \
	tblcmp.c \
	yylex.c

flex.exe: $(FLEXOBJS)
	$(LINK)


flex: $(FLEX_C_SOURCES)
	$(CC) $(CFLAGS) -c $(SKELFLAGS) $(FLEX_C_SOURCES_1)
	$(CC) $(CFLAGS) -c $(SKELFLAGS) $(FLEX_C_SOURCES_2)
	$(LINK)


first_flex:
	copy initscan.c scan.c
	$(MAKE) flex

parse.h parse.c: parse.y
	$(YACC) -d parse.y
	@rename $(YTAB).c parse.c
	@rename $(YTAB).h parse.h

scan.c: scan.l
	$(FLEX) -ist $(FLEX_FLAGS) scan.l >scan.c

scan.$O: scan.c parse.h

main.$O: main.c
	$(CC) $(CFLAGS) -c $(SKELFLAGS) main.c

flex.man: flex.1
	nroff -man flex.1 >flex.man

lint: $(FLEX_C_SOURCES)
	lint $(FLEX_C_SOURCES) > flex.lint

distrib:
	rename scan.c initscan.c
	attrib +R -A -H -S initscan.c
	$(MAKE) clean

clean:
	del *.obj
	del *.lint
	del core
	del errs
	del flex.exe
	del parse.c
	del parse.h
	del flex.man
	del tags

tags:
	ctags $(FLEX_C_SOURCES)

vms:	flex.man
	$(MAKE) distrib

test:
	$(FLEX) -ist $(FLEX_FLAGS) scan.l | diff scan.c -
 
############################################################################

I think this Makefile will help some other simple DOS user

	M. Beigl
