# Where is your Xwindows located?
X11=/usr/X11R6/

#
# For building rpms
root=

#
# For installing
prefix=/usr

#
#
RPMDIR=/usr/src/RPM

# Choose compiler
CC=gcc
LD=gcc
BINFORMAT=bin

any:
	@echo 'Choose target:'
	@echo '   make linux        - for Linux'
	@echo '   make solaris-gcc  - for Solaris with gcc'
	@echo '   make solaris-cc   - for Solaris with cc'
	@echo '   make du           - for Digital/Compac Unix or OSF1'
	@echo '   make freebsd-aout - for FreeBSD with a.out netscape'
	@echo '   make hp-gcc       - for HP-UX with gcc'
	@echo '   make hp-cc        - for HP-UX with cc'
	@echo '   make irix         - for Irix'
	@echo '   make aix          - for AIX >= 4.2'
	@echo '   make freebsd      - for FreeBSD 4.x'

irix:
	make all CC=gcc XCFLAGS=-fPIC LD=ld XLDFLAGS='-shared -n32'

aix:
	make all CC=gcc XCFLAGS=-fPIC LD=ld XLDFLAGS='-G -bexpall'

hp-gcc:
	make all CC=gcc XCFLAGS=-fPIC LD=ld XLDFLAGS=-b

hp-cc:
	make all CC=cc XCFLAGS='-Aa +z' LD=ld XLDFLAGS='-b +e NP_GetValue +e NP_Initialize +e NP_Shutdown +e NP_GetMIMEDescription'

linux:
	make all CC=gcc XCFLAGS=-fPIC LD=gcc XLDFLAGS=-shared

solaris-gcc:
	make all CC=gcc XCFLAGS=-fPIC LD=ld XLDFLAGS=-G XLIBS='-lX11 -lsocket -lnsl' X11=/usr/openwin/

solaris-cc:
	make all CC=cc LD=ld XLDFLAGS=-G  XLIBS='-lX11 -lsocket -lnsl' X11=/usr/openwin/

du:
	make all CC=cc LD=ld XLDFLAGS='-expect_unresolved "*" -shared -msym -O3'

freebsd-aout:
	make all CC=gcc XCFLAGS='-fPIC -aout' LD=gcc XLDFLAGS='-shared -aout'

freebsd-elf:
	make all CC=gcc XCFLAGS=-fPIC LD=gcc XLDFLAGS=-shared X11=/usr/X11R6/

auto:
	@case "x`uname`" in \
	  xLinux) make linux ;; \
	  xSunOS) make solaris ;; \
	  xHP-UX) make hp-gcc ;; \
	  xOSF1) make du ;;\
	  xIRIX) make irix ;;\
	  xAIX) make aix ;;\
	esac

# For other systems, look at the example makefiles in the
# PluginSDK30b5/examples/UnixTemplate/Unix directory

#
# No user servicable parts beyond this point
# 

VERSION=1.1.3

BASE_FILES=Makefile mozplugger.7.bz2 README COPYING mozpluggerrc
SOURCE_FILES=mozplugger.c mozplugger-helper.c mozplugger.spec.in mozplugger-common.c mozplugger.h README.in
BIN_FILES=mozplugger.so mozplugger

DEFINES=$(STREAM) -DVERSION=\"$(VERSION)\"# -DDEBUG # -DPLUGIN_TRACE
COMMON_CFLAGS=-O2 -Inpapi/include -I$(X11)/include -DXP_UNIX $(DEFINES)
COMMON_LDFLAGS=
NORM_CFLAGS=
NORM_LDFLAGS=
XCFLAGS=-shared
XLDFLAGS=-shared
XLIBS=-lX11 -L$(X11)/lib

LDSHARED=$(LD) $(XLDFLAGS)
override CFLAGS += $(COMMON_CFLAGS) $(NORM_CFLAGS)
LDFLAGS=$(COMMON_LDFLAGS) $(NORM_LDFLAGS)
SHARED_CFLAGS=$(COMMON_CFLAGS) $(XCFLAGS)

all: mozplugger.so mozplugger

mozplugger: mozplugger-helper.o
	$(CC) $(LDFLAGS) -o mozplugger mozplugger-helper.o $(XLIBS)

mozplugger-helper.o: mozplugger.h

mozplugger.so: mozplugger.o common.o
	$(LDSHARED) $(COMMON_LDFLAGS) -o mozplugger.so mozplugger.o common.o

mozplugger.o: mozplugger.c mozplugger.h
	$(CC) -c $(SHARED_CFLAGS) -o mozplugger.o mozplugger.c

common.o: npapi/common/npunix.c
	$(CC) -c $(SHARED_CFLAGS) -o common.o npapi/common/npunix.c

clean:
	-rm -f *.o npapi/common/*.o
	-rm -f mozplugger mozplugger.so

spotless: clean
	-rm *.so *~ core mozplugger
	-rm -rf rpmtmp

localinstall:
	-@mkdir $$HOME/.netscape/plugins 1>/dev/null 2>&1 || :
	cp mozplugger.so $$HOME/.netscape/plugins/
	cp mozplugger  $$HOME/.netscape/
	if [ ! $$HOME/.netscape/mozpluggerrc ]; then cp mozpluggerrc $$HOME/.netscape/mozpluggerrc ; fi

localinstall_opera:
	-@mkdir $$HOME/.opera/plugins 1>/dev/null 2>&1 || :
	cp mozplugger.so $$HOME/.opera/plugins/
	cp mozplugger  $$HOME/.opera/
	if [ ! $$HOME/.opera/mozpluggerrc-$(VERSION) ]; then cp mozpluggerrc $$HOME/.opera/mozpluggerrc-$(VERSION) ; fi


install:
	-@mkdir -p $(root)$(prefix)/bin
	-@mkdir -p $(root)$(prefix)/lib/mozilla/plugins
	-@mkdir -p $(root)$(prefix)/share/man/man7
	-@mkdir -p $(root)/etc
	cp mozplugger $(root)$(prefix)/bin/
	cp mozplugger.so $(root)$(prefix)/lib/mozilla/plugins/
	cp mozpluggerrc $(root)/etc/
	cp mozplugger.7.bz2 $(root)$(prefix)/share/man/man7/

mozplugger.tar.gz: $(BASE_FILES) $(SOURCE_FILES)
	@( DIR=`pwd`;\
          BASE=`basename $$DIR`;\
	  cd .. ; \
	  if [ "$$BASE" != "mozplugger" ]; then \
	    ln -s "$$BASE" mozplugger ; \
          fi ;\
	  tar cf - `for a in $(BASE_FILES) $(SOURCE_FILES); do echo mozplugger/$$a ; done` | gzip -9 >mozplugger/mozplugger.tar.gz  ;\
          if [ "$$BASE" != "mozplugger" ]; then \
	    rm mozplugger ; \
          fi ;\
	)

export: mozplugger.tar.gz

bin_export: mozplugger-$(BINFORMAT).tar.gz

echo_version:
	@echo $(VERSION)

mozplugger.spec: mozplugger.spec.in Makefile
	sed <mozplugger.spec.in >mozplugger.spec -e 's/@VERSION@/$(VERSION)/g'

README: README.in Makefile
	sed <README.in >README -e 's/@VERSION@/$(VERSION)/g'

rpm: $(RPMDIR)/SOURCES/mozplugger.tar.gz ./mozplugger.spec
	rm -rf rpmtmp ||:
	mkdir rpmtmp
	mkdir rpmtmp/usr
	mkdir rpmtmp/etc
	mkdir rpmtmp/opt
	mkdir rpmtmp/usr/local
	rpm -ba --buildroot `pwd`/rpmtmp mozplugger.spec
	cp $(RPMDIR)/SRPMS/mozplugger-1.src.rpm .
	cp $(RPMDIR)/RPMS/*/mozplugger-1.*.rpm .
	rm -rf rpmtmp

$(RPMDIR)/SOURCES/mozplugger.tar.gz: mozplugger.tar.gz
	cp mozplugger.tar.gz $(RPMDIR)/SOURCES/mozplugger.tar.gz

mozplugger-$(BINFORMAT).tar.gz: $(BASE_FILES) $(SOURCE_FILES) $(BIN_FILES)
	@( DIR=`pwd`;\
          BASE=`basename $$DIR`;\
	  cd .. ; \
	  if [ "$$BASE" != "mozplugger" ]; then \
	    ln -s "$$BASE" mozplugger ; \
          fi ;\
	  tar cf - `for a in $(BASE_FILES) $(BIN_FILES); do echo mozplugger/$$a ; done` | gzip -9 >mozplugger/mozplugger-$(BINFORMAT).tar.gz  ;\
          if [ "$$BASE" != "mozplugger" ]; then \
	    rm mozplugger ; \
          fi ;\
	)
