# NOTE: Ideally, this file should be updated automatically by a special version
# of the `updmake' perl script, similar to the one in the pc directory.
#
# SMakefile for Amiga SAS-C 6.51
#

CC = sc
CFLAGS = DEBUG=LINE DEF AMIGA IGN=161 IGN=100 IGN=7 PARAM=STACK STACKCHK IDIR="/"
LDFLAGS = link SMALLDATA SMALLCODE SAVEDS
LIBS = lib:sc.lib lib:amiga.lib lib:debug.lib
YACC=bison -y
LEX=flex
SED=sed
RM=delete quiet
MV=rename
ECHO=echo
MKDEP=mkdep

# where we get installed
bin=C:

mansrc=usr:man/man1
manext=0

# As Larry said, "Grrrr"
SHELL=bin:sh

OSOURCES  = /c2man.h /semantic.h /symbol.h /strconcat.h confmagic.h /patchlevel.h \
            /strappend.h /manpage.h /enum.h output.h /lex.l /grammar.y
DCSOURCES = c2man.c /semantic.c /string.c /symbol.c /strconcat.c \
            /strappend.c /manpage.c /enum.c /nroff.c /texinfo.c /latex.c /html.c /autodoc.c y.tab.c
ASOURCES  = popen.c /libc/getopt.c amiga.c
CSOURCES  = $(DCSOURCES)
DCOBJECTS = c2man.o semantic.o string.o symbol.o strconcat.o \
            strappend.o manpage.o enum.o nroff.o texinfo.o latex.o html.o autodoc.o \
            y.tab.o
OBJECTS   = popen.o getopt.o amiga.o
GENERATED = example.inc ctype_ex.inc y.tab.c lex.yy.c y.output \
            fixexample.sed flatten.sed

all: c2man sortad

c2man: $(DCOBJECTS) $(OBJECTS)
        $(CC) $(LDFLAGS) PNAME $@.ld $(DCOBJECTS) $(OBJECTS) lib $(LIBS) NOICON
        slink $@.ld to $@ nd NOICONS

popen.o: popen.c
        $(CC) $(CFLAGS) $(WARNFLAGS) popen.c

getopt.o: getopt.c
        $(CC) $(CFLAGS) $(WARNFLAGS) getopt.c

amiga.o: amiga.c
        $(CC) $(CFLAGS) $(WARNFLAGS) amiga.c

autodoc.o: autodoc.c
        $(CC) $(CFLAGS) $(WARNFLAGS) autodoc.c

c2man.o: c2man.c
        $(CC) $(CFLAGS) $(WARNFLAGS) c2man.c

semantic.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /semantic.c OBJNAME /amiga/

string.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /string.c OBJNAME /amiga/

symbol.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /symbol.c OBJNAME /amiga/

strconcat.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /strconcat.c OBJNAME /amiga/

strappend.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /strappend.c OBJNAME /amiga/

manpage.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /manpage.c OBJNAME /amiga/

enum.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /enum.c OBJNAME /amiga/

nroff.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /nroff.c OBJNAME /amiga/

texinfo.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /texinfo.c OBJNAME /amiga/

latex.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /latex.c OBJNAME /amiga/

html.o:
        $(CC) $(CFLAGS) $(WARNFLAGS) /html.c OBJNAME /amiga/

y.tab.c: /grammar.y
        @$(ECHO) Expect 48 shift/reduce conflicts.
        $(YACC) /grammar.y

# don't compile y.tab.c with all warnings; yacc/bison are not up to it.
y.tab.o: y.tab.c lex.yy.c
        $(CC) $(CFLAGS) y.tab.c

lex.yy.c: /lex.l
        $(LEX) -t -n /lex.l > $@

sortad: sortad.c
        $(CC) PNAME $@ $*.c LINK LIB lib:amiga.lib lib:sc.lib NOICON

example.inc: c2man /example.h
        c2man -o- /example.h >/example.inc

ctype_ex.inc: c2man /ctype_ex.h
        c2man -o- -g /ctype_ex.h >/ctype_ex.in

release:
        ;lha -r a Release:c2man-2.0.lha c2man-2.0
        aminetreadme "automated doc. from c sources (autodoc)" "dev/misc" "readme" "Release:c2man-2.0pl33"

clean:
        $(RM) -f *.ld *.o *.s *.bak *.lnk *~ *.log $(GENERATED) core

distclean:
        $(RM) -f *.ld *.o *.lnk

lint:
        lint -b $(CFLAGS) $(CSOURCES)

print:
        cpr $(SOURCES) | lpr -J'c2man'

test: c2man
        @echo "Running c2man over the examples..." 1>&2
        @for file in eg/*.[chly]; do ./c2man -v -o- $$file; done
        @echo "Running c2man over its own source code..." 1>&2
        @for file in $(DCSOURCES); do ./c2man -v -o- $$file; done
        @echo "Hmmm, test seemed to go OK." 1>&2

# y.tab.c dependancies updated manually since it won't exist yet when make
# depend is first run.
y.tab.o: /c2man.h config.h confmagic.h /enum.h /manpage.h /semantic.h /strappend.h \
         /strconcat.h /symbol.h


c2man.o: c2man.c /c2man.h config.h confmagic.h /enum.h /manpage.h /output.h \
         /patchlevel.h /strappend.h /strconcat.h /symbol.h

semantic.o: /c2man.h config.h confmagic.h /enum.h /manpage.h /semantic.c \
            /semantic.h /strconcat.h /symbol.h

string.o: /c2man.h config.h confmagic.h /string.c /symbol.h

symbol.o: /c2man.h config.h confmagic.h /symbol.c /symbol.h

strconcat.o: /c2man.h config.h confmagic.h /strconcat.c /strconcat.h /symbol.h

strappend.o: /c2man.h config.h confmagic.h /strappend.c /strappend.h /symbol.h

manpage.o: /c2man.h config.h confmagic.h /manpage.c /manpage.h /output.h \
           /semantic.h /strconcat.h /symbol.h

enum.o: /c2man.h config.h confmagic.h /enum.c /enum.h /manpage.h /strconcat.h \
        /symbol.h

nroff.o: /c2man.h config.h confmagic.h /manpage.h /nroff.c output.h /symbol.h

autodoc.o: /c2man.h config.h confmagic.h /manpage.h output.h /symbol.h

getopt.o: getopt.c getopt.h



syntax highlighted by Code2HTML, v. 0.9.1