srcdir = .
DEPTH	= /c/mozilla_SDK/mozilla
include $(DEPTH)/config/config.mk
# followings are define in config.mk
#XPIDL_GENDIR = $(srcdir)/_xpidlgen
#XPIDL_COMPILE   = $(DIST)/bin/xpidl$(BIN_SUFFIX)
#XPIDL_LINK      = $(DIST)/bin/xpt_link$(BIN_SUFFIX
#IDL_DIR


top_srcdir = ..
top_builddir = ..
SHELL = /bin/sh

AS = as
CC = gcc
CCC = c++
DLLTOOL =dlltool
DLLWRAP =dllwrap    -mno-cygwin -mwindows -L/usr/lib/mingw --dlltool-name=$(DLLTOOL) --as=$(AS) --driver-name=$(CC) --target=i386-mingw32
so = dll

# Define the timidity default file search path.
DEF_DEFAULT_PATH = -DDEFAULT_PATH=\"c:/timidity\"

XPIDLSRCS =        \
        nsIWinumpPlugin.idl 

XPIDL_HEADERS = 	\
	$(XPIDL_GEN_DIR)/nsIWinumpPlugin.h  \
	$(XPIDL_GEN_DIR)/acmeIScriptObject.h

INCLUDES = \
	-I$(top_srcdir) \
	-I$(top_srcdir)/libarc \
	-I$(top_srcdir)/interface \
	-I$(top_srcdir)/utils \
	-I$(top_srcdir)/timidity \
	-I$(top_srcdir)/libunimod 


noinst_LIBRARIES = libump.a

libump_a_SOURCES = \
	WinUMP.cpp \
	WinUMP.rc \
	np_entry.cpp \
	npp_gate.cpp \
	nsScriptablePeer.cpp \
	plugin_c.c 

EXTRA_DIST = \
	WinUMP.cpp \
	WinUMP.rc  \
	np_entry.cpp \
	npn_gate.cpp \
	nsScriptablePeer.cpp \
	plugin_c.c \
	jri.h \
	jri_md.h \
	jritypes.h \
	npapi.h \
	npupp.h 


DEF_FILE= ./WinUMP.def

#########################################################################
# Netscape Plugin settings (ump.so - Unix Midi Plugin)

# linker for making shared library
UMP = npWinUMP32.dll
MODULE = npWinUMP32
DLLNAME = npWinUMP32
#RESFILE = WinUMP.res
#DEF_FILE = WinUMP.def
UMP=$(DLLNAME).dll

XPIDL_GEN_DIR           = _xpidlgen
XPIDL_MODULE            = $(MODULE)
REPORT_BUILD = @echo $(notdir $<)
EXPORS =
SDK_HEADERS =
SDK_XPIDLSRCS =


UMPOBJS = \
	WinUMP.o \
	WinUMP.res \
	np_entry.o \
	npn_gate.o \
	nsScriptablePeer.o \
	plugin_c.o \
	timiditymain.o
	
LIBS = -lstdc++ -lversion -lm       -lwinmm
UMPLINKS = $(LIBS) 
subdir = ump
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/interface.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)

libump_a_AR = $(AR) cru
libump_a_LIBADD =
am_libump_a_OBJECTS = npwin.$(OBJEXT) UnixShell.$(OBJEXT) \
	plugin_c.$(OBJEXT)
libump_a_OBJECTS = $(am_libump_a_OBJECTS)

DEFS = $(ACDEFINES) -DHAVE_CONFIG_H -DINCLUDE_LIVE_CONNECT -DWIN32 -D_WINDOWS -D_USRDLL -D_WINDLL -D_MBCS 
DEFAULT_INCLUDES =  -I$(XPIDL_GEN_DIR) -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir) -I$(DEPTH)/dist/include -I$(DEPTH)/dist/include/nspr -I$(DEPTH)/dist/include/plugin -I$(DEPTH)/dist/include/java -I$(DEPTH)/dist/include/xpcom
CPPFLAGS = -DAU_W32  $(DEF_DEFAULT_PATH) -DTIMIDITY_OUTPUT_ID=\"d\"
LDFLAGS =   -L/usr/local/lib -L/usr/local/SDL-1.2.4/lib -L/usr/local/directx-devel/lib -L/usr/local/tml/lib -L/Mingw/lib -L/usr/local/lib

depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = -O2 -DWIN32 -D_WINDOWS
DIST_SOURCES = $(libump_a_SOURCES)
DIST_COMMON = Makefile.am Makefile.in
SOURCES = $(libump_a_SOURCES)

all: ump

.SUFFIXES:
.SUFFIXES: .def .rc .res .cpp .c .o  .h .idl .xpt


mostlyclean-compile:
	-rm -f *.$(OBJEXT) core *.core

distclean-compile:
	-rm -f *.tab.c

distclean-depend:
	-rm -rf ./$(DEPDIR)

.rc.res:
	windres $< -o $*.res  -O coff

.c.o:
	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<

.cpp.o:
	$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<


ump: $(XPIDL_HEADERS) $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt $(UMP)

$(UMP):$(DEF_FILE) $(UMPOBJS)
	for f in libarc utils interface; do (cd $(top_builddir)/$$f; $(MAKE)); done
	cd $(top_builddir)/timidity; $(MAKE) objs
	$(DLLWRAP) -o $(UMP) $(LDFLAGS) --def $(DEF_FILE) $(UMPOBJS) \
	`echo $(top_builddir)/timidity/*.o | sed -e s@$(top_builddir)/timidity/timidity.o@@g` \
	$(top_builddir)/libarc/*.o \
	$(top_builddir)/utils/*.o \
	$(top_builddir)/interface/*.o \
	$(top_builddir)/libunimod/*.o \
	$(UMPLINKS)

clean:
	rm -f $(UMP)
	rm -f *.o
	rm -f *.res
	rm -rf _xpidlgen
	rm -f *.dll

timidity-clean:
	for f in libarc utils interface; do (cd $(top_builddir)/$$f; $(MAKE) clean); done
	cd $(top_builddir)/timidity; $(MAKE) clean


timiditymain.o: $(top_srcdir)/timidity/timidity.c
	$(COMPILE) $(DEF_DEFAULT_PATH) -Dmain=timiditymain -o $@ -c $(top_srcdir)/timidity/timidity.c


$(XPIDL_GEN_DIR)/.done:
	@if test ! -d $(XPIDL_GEN_DIR); then echo Creating $(XPIDL_GEN_DIR)/.done; rm -rf $(XPIDL_GEN_DIR); mkdir $(XPIDL_GEN_DIR); fi
	@touch $@

$(XPIDL_GEN_DIR)/%.xpt: %.idl $(XPIDL_COMPILE) $(XPIDL_GEN_DIR)/.done
	$(REPORT_BUILD)
	$(ELOG) $(XPIDL_COMPILE) -m typelib -w -I $(IDL_DIR) -I$(srcdir) -o $(XPIDL_GEN_DIR)/$* $<

$(XPIDL_GEN_DIR)/%.java: %.idl $(XPIDL_COMPILE) $(XPIDL_GEN_DIR)/.done
	$(REPORT_BUILD)
	$(ELOG) $(XPIDL_COMPILE) -m java -w -I $(IDL_DIR) -I$(srcdir) -o $(XPIDL_GEN_DIR)/$* $<

$(XPIDL_GEN_DIR)/%.h: %.idl $(XPIDL_COMPILE) $(XPIDL_GEN_DIR)/.done
	$(REPORT_BUILD)
	$(ELOG) $(XPIDL_COMPILE) -m header -w -I $(IDL_DIR) -I$(srcdir) -o $(XPIDL_GEN_DIR)/$* $<
	@if test -n "$(findstring $*.h, $(EXPORTS) $(SDK_HEADERS))"; \
	 then echo "*** WARNING: file $*.h generated from $*.idl overrides $(srcdir)/$*.h"; else true; fi

$(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.xpt,$(XPIDLSRCS) $(SDK_XPIDLSRCS))  Makefile
	$(XPIDL_LINK) $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.xpt,$(XPIDLSRCS) $(SDK_XPIDLSRCS))

