#!/usr/bin/make -f
#export DH_VERBOSE=1

COMPAT_ARCHS=i486 m68k
VER=406 407 408 45 451 46 461 47 472 473 475 476 477
DEPENDS_i486=477
DEPENDS_powerpc=47

CFLAGS+=$(CFLAGS_$(@))
CFLAGS_libnsfix.so:=-fPIC
CFLAGS_libnsfix-libc5.so:=-fPIC

CPPFLAGS+=$(CPPFLAGS_$(@))
CPPFLAGS_netscape-remote:=-DSTANDALONE

LDFLAGS+=$(LDFLAGS_$(@))
LDFLAGS_netscape-remote:=-L/usr/X11R6/lib
LDFLAGS_libnsfix.so:=-shared
LDFLAGS_libnsfix-libc5.so:=-shared

LIBS+=$(LIBS_$(@))
LIBS_libnsfix.so:=-lc -ldl
LIBS_libnsfix-libc5.so:=-lc -ldl
LIBS_netscape-remote:=-lXt -lSM -lXext -lXmu -lX11 -lICE

OPT:=-O2
WARN:=-Wall

#
# No user configurable parts below.
#

include debian/arch.mk

TARGETS += uri_escape netscape-remote libnsfix.so

define compile_command
	$(CC) $(WARN) $(OPT) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
endef
netscape-remote: remote.c
	$(compile_command)
lib%.so: %.c
	$(compile_command)

%: %.c
	$(compile_command)

ifneq ($(strip $(LIBC5_ARCH)),)
libnsfix-libc5.so: nsfix.c
	$(compile_command)
libnsfix-libc5.so: PATH:=/usr/$(ARCHM)-linuxlibc1/bin:$(PATH)
libnsfix-libc5.so: CC:=/usr/$(ARCHM)-linuxlibc1/bin/cc
TARGETS += libnsfix-libc5.so
endif

bar:
	@echo LIBC5_ARCH=$(LIBC5_ARCH)
#
# Debian specific makefile is below.
#

DEBVER:= $(shell dpkg-parsechangelog 2>&1|egrep ^Version|cut -d " " -f 2|cut -d "-" -f 2)
SRCVER:= $(shell dpkg-parsechangelog 2>&1|egrep ^Version|cut -d " " -f 2|cut -d "-" -f 1)

CONFLICTS_$(ARCHM)=$(filter-out $(DEPENDS_$(ARCHM)), $(VER))

comma:=,
space:= #foo
netscape-depends:=$(patsubst %,%-$(DEPENDS_$(ARCHM)),netscape-base) netscape-base-4
navigator-depends:=$(patsubst %,%-$(DEPENDS_$(ARCHM)),navigator-smotif netscape-java) netscape-base-4
communicator-depends:=$(patsubst %,%-$(DEPENDS_$(ARCHM)),communicator-smotif netscape-java) netscape-base-4
netscape-conflicts:=$(patsubst %,netscape-base-%,$(filter-out $(DEPENDS_$(ARCHM)), $(VER)))
gencontrol-options1:=-Vnetscape:Conflicts="$(shell echo $(netscape-conflicts) | tr ' ' ',')"
gencontrol-options2:=-Vnavigator:Depends="$(shell echo $(navigator-depends) | tr ' ' ',')"
gencontrol-options3:=-Vcommunicator:Depends="$(shell echo $(communicator-depends) | tr ' ' ',')"
g-o:=$(gencontrol-options1) $(gencontrol-options2) $(gencontrol-options3)
foo:
	@echo $(CONFLICTS_$(ARCHM))
	@echo $(DEPENDS_$(ARCHM))
	@echo netscape-conflicts:$(netscape-conflicts)
	@echo navigator-depends:$(navigator-depends)
	@echo navigator-conflicts:$(navigator-conflicts)
	@echo communicator-depends:$(communicator-depends)
	@echo communicator-conflicts:$(communicator-conflicts)
	@echo $(gencontrol-options1)
	@echo $(gencontrol-options2)
	@echo $(gencontrol-options3)
	@echo $(g-o)
test:

chmod:

build: build-indep build-arch
build-indep:
build-arch: $(TARGETS)
	$(MAKE) -C libnsfix-wcsmbs
	$(MAKE) -C ns-bogus-locale DEFS=-DUNDER_46 TARGET=ns_bogus_locale_old.so
	$(MAKE) -C ns-bogus-locale

install: install-indep install-arch
install-indep: chmod build-indep debian/control
install-arch: chmod build-arch debian/control
	dh_clean -k -a
	dh_installdirs -a
ifneq ($(LIBC5_ARCH),)
	install -m 755 libnsfix-libc5.so debian/netscape-base-4-libc5/usr/lib/netscape/base-4
endif
	install -m 755 libnsfix.so debian/tmp/usr/lib/netscape/base-4/libnsfix-libc6.so
	install -m 755 libnsfix-wcsmbs/libnsfix-wcsmbs.so \
		debian/tmp/usr/lib/netscape/base-4/
	install -m 755 ns-bogus-locale/*.so \
		debian/tmp/usr/lib/netscape/base-4/
	install -m 755 -p netscape-remote uri_escape wrapper \
		debian/tmp/usr/lib/netscape/base-4
	install -m 644 -p environment config debian/tmp/etc/netscape4
	install -m 644 -p defaults/* debian/tmp/etc/netscape4/defaults
	install -m 644 -p debian/netscape-base-4.Xresources debian/tmp/usr/share/doc/netscape-base-4/examples/
	install -m 644 -p wrapper.d/* debian/tmp/usr/lib/netscape/base-4/wrapper.d/
	ln -s ../../lib/netscape/base-4/wrapper debian/tmp/usr/X11R6/bin/netscape-remote

clean: debian/control
	dh_testdir
	dh_clean
	-$(MAKE) -C libnsfix-wcsmbs clean
	-$(MAKE) -C ns-bogus-locale clean
	rm -f $(TARGETS) nsfix.o debian/control
	$(MAKE) -f debian/rules debian/control

binary-indep: install-indep debian/control
 #	dh_testdir -i
 #	dh_testroot -i
#	dh_movefiles -i
#	dh_installdocs -i
 #	dh_installmenu -i
 #	dh_installmanpages -i
	dh_installexamples -p netscape-base-4
#	dh_installchangelogs -i
#	dh_strip -i
#	dh_makeshlibs -i
 #	dh_compress -i
 #	dh_fixperms -i
 #	dh_installdeb -i
 #	dh_gencontrol -i
 #	dh_md5sums -i
#	dh_dirsizes -i
 #	dh_builddeb -i

binary-arch: install-arch debian/control
	dh_testdir -s
	dh_testroot -s
#	dh_movefiles -s
	dh_installdocs -s CONFIG ENVIRONMENT \
		PLUGINS TODO debian/README.Debian.* \
		debian/changelog.netscape-base-*-4.Debian
	rm -rf debian/navigator/usr/share/doc/navigator \
	       debian/communicator/usr/share/doc/communicator
	[ ! -d debian/communicator/usr ] || \
		ln -s netscape-base-4 debian/communicator/usr/share/doc/communicator
	[ ! -d debian/navigator/usr ] || \
		ln -s netscape-base-4 debian/navigator/usr/share/doc/navigator
	install -m644 -p ns-bogus-locale/README \
		debian/tmp/usr/share/doc/netscape-base-4/README.ns-bogus-locale
	dh_installmenu -s
	dh_installmanpages -p netscape-base-4
	dh_installchangelogs -s -Ncommunicator -Nnavigator
	dh_installmime -p netscape-base-4
	dh_strip -s
#	dh_makeshlibs -s
	dh_compress -s
	dh_fixperms -s
	dh_installdeb -s
	LD_PRELOAD= dh_shlibdeps -s
	dh_gencontrol -su "$(g-o)"
	dh_md5sums -s
#	dh_dirsizes -s
	dh_builddeb -s

# Below here is fairly generic really

binary:         binary-indep binary-arch

#debian/control: debian/control.in
#	cpp -U$(shell ARCH=$(ARCH) sh debian/archmap gcc) -A- -P $(CPPFLAGS) -o $@ $< 

debian/control: debian/control.full debian/control.libc5
	cat debian/control.full debian/control.libc5 > $@

.PHONY: binary binary-arch binary-indep clean install install-arch install-indep

