DATABASE syspgm4gl DEFINE pname CHAR(10), fname CHAR(11), source4gl RECORD progname char(10), ppath char(40), fglsourcename char(10), spath char(40) END RECORD, sourceother RECORD progname char(10), ppath char(40), othersourcename char(10), extension char(3), spath char(40) END RECORD, libraries RECORD progname char(10), ppath char(40), libraries char(9) END RECORD, opts RECORD progname char(10), ppath char(40), options char(8) END RECORD, otherobj RECORD progname char(10), ppath char(40), othername char(10), opath char(40) END RECORD, listfile ARRAY[500] OF RECORD LIKE source4gl.*, tot_count INTEGER, objsuppl CHAR(512) MAIN IF num_args() <> 1 THEN DISPLAY "USAGE: tomake.42e progname" EXIT PROGRAM END IF LET pname = arg_val(1) DECLARE source4gl CURSOR FOR SELECT * FROM source4gl WHERE progname = pname OPEN source4gl LET tot_count = 1 FETCH source4gl INTO source4gl.* IF STATUS = NOTFOUND THEN DISPLAY "Unknown programm:", pname CLIPPED EXIT PROGRAM END IF LET listfile[tot_count].* = source4gl.* LET fname = "M", pname CLIPPED START REPORT make_list TO fname WHILE TRUE FETCH source4gl INTO source4gl.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF LET listfile[tot_count].* = source4gl.* LET tot_count = tot_count + 1 END WHILE LET tot_count = tot_count - 1 OUTPUT TO REPORT make_list() FINISH REPORT make_list END MAIN REPORT make_list() DEFINE i INTEGER, tmp_str CHAR(100) OUTPUT LEFT MARGIN 0 TOP MARGIN 0 BOTTOM MARGIN 0 PAGE LENGTH 1 FORMAT ON EVERY ROW PRINT "# Makefile for programm ", pname CLIPPED PRINT ".SUFFIXES: .4gl .42o .per .42f .42m .42r .4gi .4go .o .4ge" PRINT PRINT "42R = ", source4gl.progname CLIPPED, ".42r" PRINT "42E = ", source4gl.progname CLIPPED, ".42o" PRINT "4GE = ", source4gl.progname CLIPPED, ".o" PRINT "4GI = ", source4gl.progname CLIPPED, ".4gi" PRINT PRINT "FORMSFRM = " PRINT PRINT "FORMS42 = " PRINT DECLARE sourceother CURSOR FOR SELECT * FROM sourceother WHERE progname = pname FOREACH sourceother INTO sourceother.* LET objsuppl = objsuppl CLIPPED, " ", sourceother.spath CLIPPED, "/", sourceother.othersourcename CLIPPED, sourceother.extension END FOREACH FOR i = 1 TO tot_count IF i = 1 THEN PRINT "OBJECTS42O = "; ELSE PRINT " "; END IF IF listfile[i].spath IS NOT NULL THEN PRINT listfile[i].spath CLIPPED, "/"; END IF PRINT listfile[i].fglsourcename CLIPPED, ".42o"; IF i <> tot_count THEN PRINT " \\" ELSE IF objsuppl IS NOT NULL THEN PRINT " \\" PRINT objsuppl CLIPPED ELSE PRINT END IF END IF END FOR PRINT FOR i = 1 TO tot_count IF i = 1 THEN PRINT "OBJECTS42M = "; ELSE PRINT " "; END IF IF listfile[i].spath IS NOT NULL THEN PRINT listfile[i].spath CLIPPED, "/"; END IF PRINT listfile[i].fglsourcename CLIPPED, ".42m"; IF i <> tot_count THEN PRINT " \\" ELSE PRINT END IF END FOR PRINT FOR i = 1 TO tot_count IF i = 1 THEN PRINT "OBJECTSO = "; ELSE PRINT " "; END IF IF listfile[i].spath IS NOT NULL THEN PRINT listfile[i].spath CLIPPED, "/"; END IF PRINT listfile[i].fglsourcename CLIPPED, ".o"; IF i <> tot_count THEN PRINT " \\" ELSE IF objsuppl IS NOT NULL THEN PRINT " \\" PRINT objsuppl CLIPPED ELSE PRINT END IF END IF END FOR PRINT FOR i = 1 TO tot_count IF i = 1 THEN PRINT "OBJECTS4GO = "; ELSE PRINT " "; END IF IF listfile[i].spath IS NOT NULL THEN PRINT listfile[i].spath CLIPPED, "/"; END IF PRINT listfile[i].fglsourcename CLIPPED, ".4go"; IF i <> tot_count THEN PRINT " \\" ELSE PRINT END IF END FOR # Default regle PRINT PRINT "ALL: 42r 42e 4gi 4ge" # 42e regles PRINT PRINT PRINT "42e: $(42E) $(FORMS42)" PRINT PRINT "$(42E): $(OBJECTS42O)" PRINT " fgl2c -o $(42E) $(OBJECTS42O)"; # 42r regles PRINT PRINT PRINT "42r: $(42R) $(FORMS42)" PRINT PRINT "$(42R): $(OBJECTS42M)" PRINT " fgl2p -o $(42R) $(OBJECTS42M)"; # 4ge regles PRINT PRINT PRINT "4ge: $(4GE) $(FORMSFRM)" PRINT PRINT "$(4GE): $(OBJECTSO)" PRINT " c4gl -o $(4GE) $(OBJECTSO)"; # 4gi regles PRINT PRINT PRINT "4gi: $(4GI) $(FORMSFRM)" PRINT PRINT "$(4GI): $(OBJECTS4GO)" PRINT " cat $(OBJECTS4GO)"; PRINT "> $(4GI)" PRINT PRINT PRINT ".per.42f:" PRINT " fglform $*.per" PRINT PRINT ".4gl.42o:" PRINT " fgl2c -c $*.4gl" PRINT PRINT ".4gl.42m:" PRINT " fgl2p -c $*.4gl" PRINT PRINT ".per.frm:" PRINT " form4gl $*.per" PRINT PRINT ".4gl.o:" PRINT " c4gl -c $*.4gl" PRINT PRINT ".4gl.4go:" PRINT " fglpc -c $*.4gl" END REPORT