head     1.1;
access   ;
symbols  ;
locks    tony:1.1; strict;
comment  @# @;


1.1
date     88.07.27.10.11.10;  author tony;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@OBJ=	hd.o tl.o null.o fst.o snd.o \
	maxint.o And.o Or.o Max.o Min.o Sum.o Times.o \
	choplist.o combine.o concmap.o count.o filter.o \
	itlist.o itos.o itosf.o length.o map.o mem.o rev.o \
	reverse.o revitlist.o \
	member.o sublist.o randlist.o \
	leftadj.o rightadj.o space.o split.o splitat.o stoi.o stoil.o take.o \
	assoc.o assocdef.o assocfun.o for.o isalnum.o isalpha.o iscntrl.o \
	isdigit.o islower.o isprint.o ispunct.o isspace.o isupper.o \
	select.o until.o while.o transpose.o \
	abs.o from.o intersect.o difference.o union.o \
	lex.o rotate.o rept.o automat.o odd.o \
	conc.o group.o mapstate.o \
	head.o tail.o index.o mix.o \
	takeword.o translit.o listrec.o reduce.o sort.o tsort.o \
	show.o scan.o last.o all.o exists.o getenv.o not.o \
	anysame.o allsame.o map2.o mapfst.o mapsnd.o partition.o \
	mkset.o subsets.o permutations.o \
	explode.o implode.o size.o \
	curry.o uncurry.o \
	singelton.o \
	force.o \
        Numset.o NS/listtoset.o NS/add.o NS/union.o NS/intsect.o NS/sub.o \
        NS/mem.o NS/upperlim.o NS/issubset.o NS/isempty.o \
	Float_dir/Float.o Float_dir/stof.o Float_dir/stof_c.o \
	Float_dir/ftos.o Float_dir/ftos_c.o Float_dir/itof.o \
	Float_dir/ftoi.o Float_dir/ftosf.o Float_dir/ftosf_c.o \
	Float_dir/func.o Float_dir/func_c.o \
	trace.o trace_c.o openfile.o catch.o throw.o \
	termcap.o termcap_c.o termcap_M.o tofile.o
LIBF = OK FILE
DST = /usr/local/lib/lmlc
LMLC = lmlc
BIN = /usr/src/local/lml/bin
ASM = $(BIN)/asm
ADDINDEX = $(BIN)/addindex
LMLFLAGS = 
P = 

# the predefined functions:
OBJPRE =	Pconc.o Pcirc.o Psel.o Ppre.o Ppre1.o

.SUFFIXES:
.SUFFIXES:	.o .PM .M .m .c

.PM.o:
	peep -f NS/macros.P $*.PM > $*.tmp.M; \
	$(ASM) $*.tmp.M; \
	mv $*.tmp.o $*.o; rm $*.tmp.M

.M.o:
	$(ASM) $*.M && $(ADDINDEX) < $*.t

.m.o:
	$(LMLC) $(LMLFLAGS) -c $*.m && $(ADDINDEX) < $*.t

.c.o:
	$(CC) $(CFLAGS) -c $*.c

lib.a: $(P) 	Header_test ${OBJPRE} ${OBJ}
	rm -f lib.a
	ar cr lib.a ${OBJ} ${OBJPRE}
	ranlib lib.a
	(echo "LML Library Functions:   `date`"; echo) > Descriptions
	#Header_test *.m >> Descriptions

lib_p.a:	Header_test ${OBJPRE} ${OBJ}
	mv -f *.o lib.a normo
	mv -f profo/*.o .
	make LMLFLAGS=-pg lib.a
	mv lib.a lib_p.a
	mv *.o profo
	mv normo/* .

install:
	-mkdir $(DST)/mlib/p
	cp $(LIBF) lib.index lib.a $(DST)/mlib
	cp p/* $(DST)/mlib/p
	ranlib $(DST)/mlib/lib.a
#
countlines:
	wc *.m

#predef
Ppre.o:	Ppre.m
	$(LMLC) $(LMLFLAGS) -c -Z Ppre.m
Pconc.o:	Pconc.m
	$(LMLC) $(LMLFLAGS) -c -Z Pconc.m && $(ADDINDEX) -Z <Pconc.t
Psel.o:	Psel.m
	$(LMLC) $(LMLFLAGS) -c -Z Psel.m && $(ADDINDEX) -Z <Psel.t
Ppre1.o:	Ppre1.m
	$(LMLC) $(LMLFLAGS) -c -Z Ppre1.m && $(ADDINDEX) -Z <Ppre1.t
# library functions interdependencies
difference.o intersect.o:	filter.o
group.o:			choplist.o take.o
index.o:			head.o length.o
isalpha.o:			islower.o isupper.o
isalnum.o:			isalpha.o isdigit.o
ispunct.o:			isprint.o isalnum.o
iscntrl.o:			isprint.o
space.o:			rept.o
leftadj.o rightadj.o:		rept.o length.o
itosf.o:			itos.o rightadj.o
randlist.o:			abs.o
stoi.o:				revitlist.o take.o isdigit.o
stoil.o:			isdigit.o
take.o:				reverse.o
transpose.o:			map.o Or.o
union.o:			difference.o
show.o:				itos.o mix.o map.o concmap.o
takeword.o:			isalpha.o isalnum.o isdigit.o take.o
translit.o:			assocdef.o
Max.o Min.o:			revitlist.o maxint.o
sort.o:				automat.o
scan.o:				takeword.o take.o mem.o isdigit.o stoi.o isspace.o
subset.o:			map.o
permutations.o:			map.o concmap.o

# cc is brain damaged, thus we need these rules
Float_dir/func_c.o:	Float_dir/func_c.c
	$(CC) $(CFLAGS) -c Float_dir/func_c.c; mv func_c.o Float_dir
Float_dir/stof_c.o:	Float_dir/stof_c.c
	$(CC) $(CFLAGS) -c Float_dir/stof_c.c; mv stof_c.o Float_dir
Float_dir/ftos_c.o:	Float_dir/ftos_c.c
	$(CC) $(CFLAGS) -c Float_dir/ftos_c.c; mv ftos_c.o Float_dir
Float_dir/ftosf_c.o:	Float_dir/ftosf_c.c
	$(CC) $(CFLAGS) -c Float_dir/ftosf_c.c; mv ftosf_c.o Float_dir

Header_test:	Header_test.l
		lex Header_test.l
		cc -O lex.yy.c -o Header_test
		rm lex.yy.c

clean:
	rm -f *.o lib.a lib_p.a
oosave:
	mv *.o lib.a saveoo
unosave:
	mv saveoo/* .
osave:
	mv *.o lib.a saveo
unsave:
	mv saveo/* .
@
