PACKAGE = icewm
VERSION = 1.2.2
HOSTOS  = Linux 2.4.18-3
HOSTCPU = i686

LOCDIR = /usr/share/locale
DOCDIR = /usr/share/doc

################################################################################

CXX =           gcc
LD =            gcc
EXEEXT =        

DEBUG =         
DEFS =          -DHAVE_CONFIG_H \
                -DLIBDIR='"$(LIBDIR)"' \
                -DCFGDIR='"$(CFGDIR)"' \
                -DLOCDIR='"$(LOCDIR)"' \
                -DKDEDIR='"$(KDEDIR)"' \
                -DPACKAGE='"icewm"' \
                -DVERSION='"$(VERSION)"' \
                -DHOSTOS='"$(HOSTOS)"' \
                -DHOSTCPU='"$(HOSTCPU)"' \
                -DEXEEXT='"$(EXEEXT)"' \
                -DICEWMEXE='"icewm$(EXEEXT)"' \
                -DICEHELPEXE='"icehelp$(EXEEXT)"' \
                -DICEHELPIDX='"$(DOCDIR)/icewm-$(VERSION)/icewm.html"'

CXXFLAGS =      -fpermissive -Wall -Wpointer-arith -Wconversion -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Winline -Woverloaded-virtual -W -fno-exceptions -fno-rtti -g -O2 $(DEBUG) $(DEFS) \
	         -I/usr/X11R6/include -I/usr/X11R6/include  
LFLAGS =
LIBS =          

CORE_LIBS =      -lSM -lICE  -lX11  -L/usr/X11R6/lib  -lXext
IMAGE_LIBS =    -L/usr/lib -lImlib -ljpeg -ltiff -lungif -lpng -lz -lm -lXext -L/usr/X11R6/lib -lSM -lICE -lXext -lX11
AUDIO_LIBS =    
GNOME_LIBS =    

################################################################################

libice_OBJS = \
        yapp.o ytimer.o ywindow.o ypaint.o ytooltip.o ypopup.o \
        ymenu.o ymenuitem.o yscrollbar.o ybutton.o ylistbox.o yinput.o \
        misc.o icons.o ycursor.o ylabel.o yscrollview.o ysocket.o \
        wmconfig.o ypaths.o ypixbuf.o ylocale.o yarray.o

genpref_OBJS = \
	genpref.o

icewm_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS) $(GNOME_LIBS)
icewm_OBJS = \
        ymsgbox.o ydialog.o yurl.o \
        wmsession.o wmwinlist.o wmtaskbar.o wmwinmenu.o \
        wmdialog.o wmabout.o wmswitch.o wmstatus.o \
        wmoption.o wmaction.o \
        wmcontainer.o wmclient.o \
        wmmgr.o wmapp.o \
        wmframe.o wmbutton.o wmminiicon.o wmtitle.o movesize.o \
        themes.o decorate.o gnome.o browse.o \
        wmprog.o ymenufile.o ydesktop.o yparser.o \
        atasks.o aworkspaces.o amailbox.o aclock.o acpustatus.o \
	apppstatus.o aaddressbar.o objbar.o aapm.o atray.o \
        $(libice_OBJS)

icesh_LIBS = \
	$(CORE_LIBS)
icesh_OBJS = \
	icesh.o misc.o

icewmhint_LIBS = \
	$(CORE_LIBS)
icewmhint_OBJS = \
	icewmhint.o

icewmbg_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
icewmbg_OBJS = \
	icewmbg.o misc.o

icesound_LIBS = \
	$(CORE_LIBS) $(AUDIO_LIBS)
icesound_OBJS = \
	icesound.o misc.o ycmdline.o

icehelp_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
icehelp_OBJS = \
	$(libice_OBJS) icehelp.o

iceclock_OBJS = \
	$(libice_OBJS) iceclock.o aclock.o
iceclock_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
icebar_OBJS = \
	$(libice_OBJS) \
        wmtaskbar.o \
        wmprog.o gnome.o browse.o themes.o wmaction.o \
	amailbox.o aclock.o acpustatus.o apppstatus.o aaddressbar.o objbar.o
icesame_OBJS = \
	$(libice_OBJS) icesame.o
icesame_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
icelist_OBJS = \
	$(libice_OBJS) icelist.o
icelist_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
iceview_OBJS = \
	$(libice_OBJS) iceview.o
iceview_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
iceicon_OBJS = \
	$(libice_OBJS) iceicon.o
iceicon_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
icerun_OBJS = \
	$(libice_OBJS) icerun.o
icerun_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
iceskt_OBJS = \
	$(libice_OBJS) iceskt.o

testwinhints_OBJS= \
        testwinhints.o
testwinhints_LIBS = \
        $(CORE_LIBS) $(IMAGE_LIBS)

testnetwmhints_OBJS= \
        testnetwmhints.o
testnetwmhints_LIBS = \
        $(CORE_LIBS) $(IMAGE_LIBS)

testlocale_OBJS = \
	testlocale.o ylocale.o misc.o
testdesktop_OBJS = \
	testdesktop.o ydesktop.o yparser.o ylocale.o misc.o
testdesktop_LIBS = \
	$(CORE_LIBS) $(IMAGE_LIBS)
testgnomevfs_OBJS = \
	testgnomevfs.o gnomevfs.o ylibrary.o misc.o
testgnomevfs_LFLAGS = \
        -ldl
testarray_OBJS = \
	testarray.o yarray.o misc.o

################################################################################

APPLICATIONS = genpref icewm icesh icewmhint icewmbg icehelp
TESTCASES = testarray testdesktop testgnomevfs testlocale testnetwmhints testwinhints iceview icesame iceicon icerun icelist
OBJECTS =  $(genpref_OBJS) $(icewm_OBJS) $(icesh_OBJS) $(icewmhint_OBJS) $(icewmbg_OBJS) $(icehelp_OBJS)  $(testarray_OBJS) $(testdesktop_OBJS) $(testgnomevfs_OBJS) $(testlocale_OBJS) $(testnetwmhints_OBJS) $(testwinhints_OBJS) $(iceview_OBJS) $(icesame_OBJS) $(iceicon_OBJS) $(icerun_OBJS) $(icelist_OBJS)
BINARIES =  genpref$(EXEEXT) icewm$(EXEEXT) icesh$(EXEEXT) icewmhint$(EXEEXT) icewmbg$(EXEEXT) icehelp$(EXEEXT)  testarray$(EXEEXT) testdesktop$(EXEEXT) testgnomevfs$(EXEEXT) testlocale$(EXEEXT) testnetwmhints$(EXEEXT) testwinhints$(EXEEXT) iceview$(EXEEXT) icesame$(EXEEXT) iceicon$(EXEEXT) icerun$(EXEEXT) icelist$(EXEEXT)

################################################################################

all: base
base:  genpref$(EXEEXT) icewm$(EXEEXT) icesh$(EXEEXT) icewmhint$(EXEEXT) icewmbg$(EXEEXT) icehelp$(EXEEXT) ../lib/preferences
tests:  testarray$(EXEEXT) testdesktop$(EXEEXT) testgnomevfs$(EXEEXT) testlocale$(EXEEXT) testnetwmhints$(EXEEXT) testwinhints$(EXEEXT) iceview$(EXEEXT) icesame$(EXEEXT) iceicon$(EXEEXT) icerun$(EXEEXT) icelist$(EXEEXT)
clean:
	rm -f $(BINARIES) *.o *.p *~

.PHONY: all base tests clean

################################################################################

%.p: %.cc
	@echo Analysing dependencies for $^...
	@$(CXX) $(CXXFLAGS) -M -c $< > $@

%.o: %.cc
	@echo Compiling $@...
	@$(CXX) $(CXXFLAGS) -c $<
	
################################################################################

$(BINARIES):
	@echo Linking $@...
	@$(LD) -o $@ $($@_OBJS) $(LFLAGS) $($@_LFLAGS) $(LIBS) $($@_LIBS)

libice.so: $(libice_OBJS)
	-@rm -f $@
	ld -shared -o $@ $(libice_OBJS)

wmabout.o: ../VERSION

../lib/preferences: genpref
	./genpref >../lib/preferences

################################################################################

genpref: $(genpref_OBJS)
icewm: $(icewm_OBJS)
icesh: $(icesh_OBJS)
icewmhint: $(icewmhint_OBJS)
icewmbg: $(icewmbg_OBJS)
icehelp: $(icehelp_OBJS)
testarray: $(testarray_OBJS)
testdesktop: $(testdesktop_OBJS)
testgnomevfs: $(testgnomevfs_OBJS)
testlocale: $(testlocale_OBJS)
testnetwmhints: $(testnetwmhints_OBJS)
testwinhints: $(testwinhints_OBJS)
iceview: $(iceview_OBJS)
icesame: $(icesame_OBJS)
iceicon: $(iceicon_OBJS)
icerun: $(icerun_OBJS)
icelist: $(icelist_OBJS)
