TOPDIR = .
include MakeVars
include Makerules

SUBDIRS = filing simsys io util funclib lib main $(WINDOW_SYSTEM)

ifeq ($(SOUNDSUPPORT), true)
SUBDIRS := sound $(SUBDIRS) 
endif

ifeq ($(BUILD_AWETHOR), true)
SUBDIRS := $(SUBDIRS) awethor
endif


CANDLE_SRCS = $(foreach dir,$(SUBDIRS),$(wildcard $(dir)/*.c))

CANDLE = main/candleweb

main/candleweb: subdirs
	#$(foreach i, $(SUBDIRS), $(i)/$(i).o)
	$(RM) $(CANDLE)
	$(CC) $(LDFLAGS) -o $(CANDLE) \
	$(foreach i, $(SUBDIRS), $(i)/$(i).o) $(LIBS)
	chmod -R g+rwX .

#plugin libcandleplugin.so: PIsubdirs
#	$(LD) -o libcandleplugin.so $(TOPDIR)/plugin/npshell.o $(TOPDIR)/plugin/stuff.o $(TOPDIR)/plugin/npunix.o $(TOPDIR)/util/canutil.o $(TOPDIR)/filing/hand/readsim.o $(TOPDIR)/filing/hand/readobjs.o $(TOPDIR)/filing/sym.o $(TOPDIR)/filing/funcname.o $(TOPDIR)/funclib/vector.o $(TOPDIR)/funclib/math.o $(TOPDIR)/funclib/fmisc.o $(TOPDIR)/funclib/color.o $(TOPDIR)/funclib/string.o $(TOPDIR)/funclib/funcutil.o $(TOPDIR)/util/wwwcom.o $(TOPDIR)/simsys/creatsim.o $(TOPDIR)/simsys/simulate.o $(TOPDIR)/simsys/optimize.o $(TOPDIR)/simsys/instsim.o $(TOPDIR)/simsys/freesim.o $(TOPDIR)/filing/hand/lex.o $(TOPDIR)/filing/parser.o $(TOPDIR)/io/instance.o $(TOPDIR)/io/objects.o $(TOPDIR)/io/update.o $(TOPDIR)/funclib/opers.o $(TOPDIR)/util/fast_lis.o $(TOPDIR)/util/error.o $(TOPDIR)/util/memory.o $(TOPDIR)/X/region.o $(TOPDIR)/X/events.o $(TOPDIR)/X/image.o $(TOPDIR)/X/input.o $(TOPDIR)/X/init.o $(TOPDIR)/X/guilib/guiapi.o $(TOPDIR)/X/guilib/Awe.o $(TOPDIR)/X/misc.o -L/usr/X11/lib -lX11 -lXt -lm -lc /usr/lib/gcc-lib/i486-linux/2.7.2/libgcc.a

plugin libcandleplugin.so: PIsubdirs
	$(LD) -o libcandleplugin.so $(TOPDIR)/plugin/npshell.o $(TOPDIR)/plugin/stuff.o $(TOPDIR)/plugin/npunix.o $(TOPDIR)/util/canutil.o $(TOPDIR)/filing/sym.o $(TOPDIR)/filing/funcname.o $(TOPDIR)/filing/pccts/cndl.o $(TOPDIR)/filing/pccts/err.o $(TOPDIR)/filing/pccts/pmisc.o $(TOPDIR)/filing/pccts/scan.o $(TOPDIR)/funclib/vector.o $(TOPDIR)/funclib/math.o $(TOPDIR)/funclib/fmisc.o $(TOPDIR)/funclib/color.o $(TOPDIR)/funclib/string.o $(TOPDIR)/funclib/funcutil.o $(TOPDIR)/util/wwwcom.o $(TOPDIR)/simsys/creatsim.o $(TOPDIR)/simsys/simulate.o $(TOPDIR)/simsys/optimize.o $(TOPDIR)/simsys/instsim.o $(TOPDIR)/simsys/freesim.o $(TOPDIR)/filing/parser.o $(TOPDIR)/io/instance.o $(TOPDIR)/io/objects.o $(TOPDIR)/io/update.o $(TOPDIR)/funclib/opers.o $(TOPDIR)/util/fast_lis.o $(TOPDIR)/util/error.o $(TOPDIR)/util/memory.o $(TOPDIR)/X/region.o $(TOPDIR)/X/events.o $(TOPDIR)/X/image.o $(TOPDIR)/X/input.o $(TOPDIR)/X/init.o $(TOPDIR)/X/guilib/guiapi.o $(TOPDIR)/X/guilib/Awe.o $(TOPDIR)/X/misc.o $(TOPDIR)/main/version.o /local/x11/lib/libX11.a /usr/lib/libm.a /local/src/w3c-libwww-current/Library/src/libwww.a -lgthreads -lmalloc /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.4/2.7.2/libgcc.a
 
#/local/src/w3c-libwww-current/Library/src/libwww.a /usr/X11/lib/libX11.a /usr/lib/libm.a /usr/lib/libc.a /usr/local/lib/gcc-lib/sparc-sun-sunos4.1.4/2.7.2/libgcc.a

#/lib/libc.a 
#/usr/local/lib/gcc-lib/sparc-sun-sunos4.1.4/2.7.2/libgcc.a 
#-lwww -lX11 -lXt -lSM -lICE -lm

all: clean main/candleweb clean libcandleplugin.so

PIsubdirs:
	$(MAKE) -C include PLUGIN=true;
	$(foreach i, $(SUBDIRS), $(MAKE) -C $(i) PLUGIN=true;)
	$(MAKE) -C plugin PLUGIN=true;

subdirs:
	$(MAKE) -C include;
	$(foreach i, $(SUBDIRS), $(MAKE) -C $(i);)

dep depend:
	$(foreach i, $(SUBDIRS), $(MAKE) -C $(i) dep;)

tags:
	$(RM) TAGS
	find . -name "*.[ch]" -exec etags -a -o TAGS {} \;

clean:
	find -name "*.o" -type f | xargs $(RM)
	$(RM) logfile main/logfile libcandleplugin.so

cleaner: clean
	$(RM) $(CANDLE)

realclean: cleaner
	$(RM) main/core TAGS
	find -name "*~" | xargs $(RM)
	find -name "TAGS" | xargs $(RM)
	find -name ".depend" | xargs $(RM)
	$(RM) sound/playmidi/playmidi.h
	$(MAKE) -C lib/jpeg realclean;

changes:
	emacs $(CANDLE_SRCS) Makefile &


count:
	find -name "*.[ch]" | xargs wc 

echo:
	echo $(LINKFLAGS)

install: libcandleplugin.so
	 $(INSTALL) libcandleplugin.so $(HOME)/.netscape/plugins/

ifeq (.depend,$(wildcard .depend))
include .depend
endif
