# openurl.library - universal URL display and browser launcher library
# Written by Troels Walsted Hansen <troels@stud.cs.uit.no>
# Placed in the public domain.
#
# SAS/C smake makefile

# options

SC = sc
SL = slink

OPT_DEB_COPTS = OPTIMIZE OPTCOMP=9 OPTDEP=9 OPTSCHED IGN 306,315
#OPT_DEB_COPTS = DEBUG=LINE

LIB_COPTS = IDIR include NOCHECKABORT NOSTACKCHECK NOSTDIO NOICONS ERRORREXX \
            LIBCODE MEMORYSIZE=HUGE PARAMETERS=REGISTERS STRINGMERGE $(OPT_DEB_COPTS)
LIB_LOPTS = NOICONS SMALLCODE SMALLDATA LIBFD fd/openurl_lib.fd LIBPREFIX _LIB_ \
            LIBVERSION 2 LIBREVISION 0 LIBID "openurl.library 2.0 (1.2.99)"

APP_COPTS = IDIR include NOCHECKABORT NOSTACKCHECK NOSTDIO NOICONS ERRORREXX \
            MEMORYSIZE=HUGE PARAMETERS=REGISTERS STRINGMERGE $(OPT_DEB_COPTS)
APP_LOPTS = NOICONS SMALLCODE SMALLDATA

LIBS = LIB:sc.lib LIB:amiga.lib LIB:debug.lib
ALL_DEP = include/libraries/openurl.h include/clib/openurl_protos.h \
          include/pragmas/openurl_pragmas.h

PREFS_APP = Prefs/OpenURL
PREFS_DEP = prefs_common.h prefs_main.h prefs_app.h prefs_prefswin.h prefs_editwin.h
PREFS_OBJ = prefs_common.o prefs_main.o prefs_app.o prefs_prefswin.o prefs_editwin.o

# default rule

all: openurl.library OpenURL-Handler $(PREFS_APP) OpenURL Example

# rules for the library 

openurl.library: library.o
	$(SL) $(LIB_LOPTS) FROM LIB:libent.o LIB:libinit.o library.o LIB $(LIBS) TO openurl.library

library.o: library.c handler.h $(ALL_DEP)
	$(SC) library.c $(LIB_COPTS)

# rules for the handler 

OpenURL-Handler: handler.o
	$(SL) $(APP_LOPTS) FROM handler.o LIB $(LIBS) TO OpenURL-Handler

handler.o: handler.c handler.h $(ALL_DEP)
	$(SC) handler.c $(APP_COPTS)

# rules for prefs app

$(PREFS_APP): $(PREFS_OBJ)
	$(SL) $(APP_LOPTS) FROM LIB:c.o $(PREFS_OBJ) LIB $(LIBS) TO $(PREFS_APP)

prefs_main.o: prefs_main.c $(PREFS_DEP) $(ALL_DEP)
	$(SC) prefs_main.c $(APP_COPTS)

prefs_common.o: prefs_common.c $(PREFS_DEP) $(ALL_DEP)
	$(SC) prefs_common.c $(APP_COPTS)

prefs_app.o: prefs_app.c $(PREFS_DEP) $(ALL_DEP)
	$(SC) prefs_app.c $(APP_COPTS)

prefs_prefswin.o: prefs_prefswin.c $(PREFS_DEP) $(ALL_DEP)
	$(SC) prefs_prefswin.c $(APP_COPTS)

prefs_editwin.o: prefs_editwin.c $(PREFS_DEP) $(ALL_DEP)
	$(SC) prefs_editwin.c $(APP_COPTS)

# rules for the OpenURL app

OpenURL: OpenURL.o SmartReadArgs.o
	$(SL) $(APP_LOPTS) FROM LIB:c.o OpenURL.o SmartReadArgs.o LIB $(LIBS) TO OpenURL

OpenURL.o: OpenURL.c SmartReadArgs.h $(ALL_DEP)
	$(SC) OpenURL.c $(APP_COPTS)

SmartReadArgs.o: SmartReadArgs.c SmartReadArgs.h
	$(SC) SmartReadArgs.c $(APP_COPTS)

# rules for the test app

Example: Example.o
	$(SL) $(APP_LOPTS) FROM LIB:c.o Example.o LIB $(LIBS) TO Example

Example.o: Example.c $(ALL_DEP)
	$(SC) Example.c $(APP_COPTS)

# misc rules

install:
	Copy openurl.library LIBS:
	Copy OpenURL-Handler L:

clean:
	Delete openurl.library OpenURL-Handler $(PREFS_APP) OpenURL \#?.o
