TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
DLLFLAGS  = @DLLFLAGS@
LIBEXT    = @LIBEXT@
MODULE    = libwine.$(LIBEXT)
VERSCRIPT = $(SRCDIR)/wine.map
EXTRALIBS = $(LIBPORT) @LIBDL@ @CRTLIBS@
DEFS      = -D__WINESRC__ -DWINE_UNICODE_API=""

VERSION   = 1.0
SOVERSION = 1
SONAME    = libwine.so.$(SOVERSION)
DYNAME    = libwine.$(SOVERSION).dylib

INSTALLDIRS = $(DESTDIR)$(libdir)

C_SRCS = \
	casemap.c \
	collation.c \
	compose.c \
	config.c \
	cptable.c \
	debug.c \
	fold.c \
	ldt.c \
	loader.c \
	mbtowc.c \
	mmap.c \
	port.c \
	sortkey.c \
	string.c \
	utf8.c \
	wctomb.c \
	wctype.c \
	c_037.c \
	c_424.c \
	c_437.c \
	c_500.c \
	c_737.c \
	c_775.c \
	c_850.c \
	c_852.c \
	c_855.c \
	c_856.c \
	c_857.c \
	c_860.c \
	c_861.c \
	c_862.c \
	c_863.c \
	c_864.c \
	c_865.c \
	c_866.c \
	c_869.c \
	c_874.c \
	c_875.c \
	c_878.c \
	c_932.c \
	c_936.c \
	c_949.c \
	c_950.c \
	c_1006.c \
	c_1026.c \
	c_1250.c \
	c_1251.c \
	c_1252.c \
	c_1253.c \
	c_1254.c \
	c_1255.c \
	c_1256.c \
	c_1257.c \
	c_1258.c \
	c_10000.c \
	c_10006.c \
	c_10007.c \
	c_10029.c \
	c_10079.c \
	c_10081.c \
	c_20127.c \
	c_20866.c \
	c_20932.c \
	c_21866.c \
	c_28591.c \
	c_28592.c \
	c_28593.c \
	c_28594.c \
	c_28595.c \
	c_28596.c \
	c_28597.c \
	c_28598.c \
	c_28599.c \
	c_28600.c \
	c_28603.c \
	c_28604.c \
	c_28605.c \
	c_28606.c

all: $(MODULE) $(MODULE:.dll=.a)

@MAKE_RULES@

# Special defines needed for config.c

CONFIGDIRS = \
	-DBINDIR='"$(bindir)"' \
	-DDLLDIR='"$(dlldir)"' \
	-DLIB_TO_BINDIR=\"`$(RELPATH) $(libdir) $(bindir)`\" \
	-DLIB_TO_DLLDIR=\"`$(RELPATH) $(libdir) $(dlldir)`\" \
	-DBIN_TO_DLLDIR=\"`$(RELPATH) $(bindir) $(dlldir)`\" \
	-DLIB_TO_DATADIR=\"`$(RELPATH) $(libdir) $(datadir)/wine`\" \
	-DBIN_TO_DATADIR=\"`$(RELPATH) $(bindir) $(datadir)/wine`\"

config.o: config.c $(RELPATH)
	$(CC) -c $(ALLCFLAGS) -o $@ $(SRCDIR)/config.c $(CONFIGDIRS)

# Linking rules

libwine.so.$(VERSION): $(OBJS) $(VERSCRIPT) Makefile.in
	$(LDSHARED) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@

libwine.so.$(SOVERSION): libwine.so.$(VERSION)
	$(RM) $@ && $(LN_S) libwine.so.$(VERSION) $@

libwine.so: libwine.so.$(SOVERSION)
	$(RM) $@ && $(LN_S) libwine.so.$(SOVERSION) $@

libwine.a: wine.def
	$(DLLTOOL) -l $@ -d $(SRCDIR)/wine.def

libwine.dll: $(OBJS) wine.def Makefile.in
	$(DLLWRAP) --def $(SRCDIR)/wine.def -o $@ $(OBJS) $(EXTRALIBS)

DYLIB_LDFLAGS = -compatibility_version $(SOVERSION) -current_version $(VERSION)

libwine.$(VERSION).dylib: $(OBJS) $(RELPATH) Makefile.in
	$(LDSHARED) $(DYLIB_LDFLAGS) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@

libwine.$(SOVERSION).dylib: libwine.$(VERSION).dylib
	$(RM) $@ && $(LN_S) libwine.$(VERSION).dylib $@

libwine.dylib: libwine.$(SOVERSION).dylib
	$(RM) $@ && $(LN_S) libwine.$(SOVERSION).dylib $@

# Install rules

.PHONY: install-lib-so install-lib-dll install-lib-dylib install-dev-so install-dev-dll install-dev-dylib

install-lib-so: libwine.so.$(VERSION) $(DESTDIR)$(libdir) dummy
	$(INSTALL_PROGRAM) libwine.so.$(VERSION) $(DESTDIR)$(libdir)/libwine.so.$(VERSION)
	cd $(DESTDIR)$(libdir) && $(RM) libwine.so.$(SOVERSION) && $(LN_S) libwine.so.$(VERSION) libwine.so.$(SOVERSION)

install-lib-dll: libwine.dll $(DESTDIR)$(libdir) dummy
	$(INSTALL_DATA) libwine.dll $(DESTDIR)$(libdir)/libwine.dll

install-lib-dylib: libwine.$(VERSION).dylib $(DESTDIR)$(libdir) dummy
	$(INSTALL_PROGRAM) libwine.$(VERSION).dylib $(DESTDIR)$(libdir)/libwine.$(VERSION).dylib
	cd $(DESTDIR)$(libdir) && $(RM) libwine.$(SOVERSION).dylib && $(LN_S) libwine.$(VERSION).dylib libwine.$(SOVERSION).dylib

install-dev-so: $(DESTDIR)$(libdir) dummy
	cd $(DESTDIR)$(libdir) && $(RM) libwine.so && $(LN_S) libwine.so.$(VERSION) libwine.so

install-dev-dll: libwine.a $(DESTDIR)$(libdir) dummy
	$(INSTALL_DATA) libwine.a $(DESTDIR)$(libdir)/libwine.a

install-dev-dylib: $(DESTDIR)$(libdir) dummy
	cd $(DESTDIR)$(libdir) && $(RM) libwine.dylib && $(LN_S) libwine.$(VERSION).dylib libwine.dylib

install install-lib:: $(LIBEXT:%=install-lib-%)
install install-dev:: $(LIBEXT:%=install-dev-%)

uninstall::
	-cd $(DESTDIR)$(libdir) && $(RM) libwine.a libwine.dll libwine.so libwine.so.$(VERSION) \
		libwine.so.$(SOVERSION) libwine.dylib libwine.$(VERSION).dylib libwine.$(SOVERSION).dylib

clean::
	$(RM) libwine.so.$(SOVERSION) libwine.so.$(VERSION)

$(RELPATH):
	@cd $(TOOLSDIR)/tools && $(MAKE) relpath

@DEPENDENCIES@  # everything below this line is overwritten by make depend
