# Makefile.
# $Id: Makefile.gcc.mak,v 1.1 2006/12/30 12:27:10 sirakaba Exp $

# File extension.
EXT_LIB = .so
EXT_A   = .a
EXT_OBJ = .o

# Define directory pathes.
DIR_OUT  = ../../../bin/lib/

# Define i/o files.
IN_OBJS   = libwinecaller$(EXT_OBJ)
IN_DEF    = libwinecaller.def
OUT_LIB   = libwinecaller$(EXT_LIB)
OUT_A     = libwinecaller$(EXT_A)
OUT_FULL = $(DIR_OUT)$(OUT_LIB)

# Define compilers.
CP_CPP = g++ -g -c -O3 -Wall -W -fPIC -fshort-wchar
CP_LNK = wineg++ -g -shared -lwine
CP_STR = strip --strip-all

.PHONY: all clean
.SUFFIXES: .cpp $(EXT_OBJ)

all: $(IN_OBJS) $(IN_DEF)
	$(CP_LNK) -o $(OUT_FULL) -Wl,-soname,$(OUT_LIB) $(IN_OBJS) ./wine/dlls/kernel32/*.o ./wine/dlls/ntdll/*.o ./wine/libs/port/interlocked.o ./wine/libs/wine/mbtowc.o  ./wine/libs/wine/compose.o ./wine/loader/pthread.o $(IN_DEF) -lpthread
#	/usr/lib/wine/kernel32.dll.so /usr/lib/wine/user32.dll.so /usr/lib/wine/ntdll.dll.so
	mv $(OUT_FULL:$(EXT_LIB)=.dll$(EXT_LIB)) $(OUT_FULL)
#	$(CP_STR) $(OUT_FULL)

clean:
	rm -f $(IN_OBJS) $(OUT_FULL)

.cpp$(EXT_OBJ):
	$(CP_CPP) -o $@ $<
