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 = \
	c_037.c \
	c_10000.c \
	c_10006.c \
	c_10007.c \
	c_10029.c \
	c_1006.c \
	c_10079.c \
	c_10081.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_1361.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 \
	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 \
	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

EXTRA_OBJS = version.o

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)`\" \
	-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) -install_name $(libdir)/$(DYNAME) $(DYLIB_LDFLAGS) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@

libwine.$(SOVERSION).dylib: libwine.$(VERSION).dylib
	cp -p libwine.$(VERSION).dylib $@ && install_name_tool -id @executable_path/`$(RELPATH) $(bindir) $(libdir)`/$(DYNAME) $@ || $(RM) $@

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

version.c: dummy
	version=`(GIT_DIR=$(TOPSRCDIR)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)

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

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