#
# ====================================================================
#
# libffi Windows Makefile
#
#
# ====================================================================
#

NAME=ffi-3
VERSION=3.0.10
TARGET=X86_WIN64
CC=cl.exe
AS=ml64.exe
RC=rc.exe
MT=mt.exe
AR="link.exe"
SO=.dll
OBJ=.obj
EXE=.exe
LA=.lib
LINK="link.exe"
PREFIX=
TOPDIR=.
CPP=cl.exe -EP
CFLAGS=-nologo -Zi -D_MD -W3 -DWIN64 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0600 -D_AMD64_=1 -DNDEBUG -MD -O2 -Ob2 -Oy-
LDFLAGS=/NOLOGO /MACHINE:X64
SHFLAGS=/DLL /INCREMENTAL:NO /DEBUG /SUBSYSTEM:WINDOWS /OPT:REF
ARFLAGS=/LIB
ASFLAGS=-coff -W3 -Cx -Zm -Di386 -DQUIET -D?QUIET
RCFLAGS=/l 0x409 -DNDEBUG
INCLUDES=-I . -I .\include -I .\src\x86 
LIBS=kernel32.lib advapi32.lib shell32.lib user32.lib gdi32.lib

VERSION_MAJOR=3
VERSION_MINOR=1
VERSION_PATCH=10rc

DESTDIR=$(PREFIX)
DESTBIN=$(PREFIX)\bin
DESTLIB=$(PREFIX)\lib
DESTINC=$(PREFIX)\include
SRCDIR=$(TOPDIR)\src

WORKDIR=$(TOPDIR)\.libs
SOLIBNAME=lib$(NAME)
LALIBNAME=libffi_convenience
STATICLIB=$(WORKDIR)\$(LALIBNAME)$(LA)

BUILDPDB = $(WORKDIR)\$(SOLIBNAME).pdb

HEADERS = \
	$(TOPDIR)\fficonfig.h

FFI_HEADERS = \
	$(TOPDIR)\include\ffi.h
	
OBJECTS = \
	$(SRCDIR)\closures.obj \
	$(SRCDIR)\debug.obj \
	$(SRCDIR)\java_raw_api.obj \
	$(SRCDIR)\prep_cif.obj \
	$(SRCDIR)\raw_api.obj \
	$(SRCDIR)\types.obj \
	$(SRCDIR)\x86\ffi.obj

!IF "$(TARGET)" == "X86_WIN32"
OBJECTS = $(OBJECTS) \
	$(SRCDIR)\x86\win32.obj
ASMSRCS = \
    $(SRCDIR)\x86\win32.asm
    
!ENDIF
!IF "$(TARGET)" == "X86_WIN64"
OBJECTS = $(OBJECTS) \
	$(SRCDIR)\x86\win64.obj
ASMSRCS = \
    $(SRCDIR)\x86\win64.asm

!ENDIF

.SUFFIXES : .S .asm

all: $(WORKDIR) $(STATICLIB)

.c$(OBJ):
	$(CC) -c $(CFLAGS) $(INCLUDES) -Fo$@ -Fd$(WORKDIR)\$(NAME)-src $<

.asm$(OBJ):
	$(AS) -c $(ASFLAGS) /Fo $@ $<

.S.asm:
	$(CPP) $(CFLAGS) $(INCLUDES) $< >$@

.rc.res:
	$(RC) $(RCFLAGS) /fo $@ $<

$(WORKDIR) :
	-@if not exist "$(WORKDIR)\$(NULL)" mkdir $(WORKDIR)

$(HEADERS) :
	-@if not exist $(HEADERS) copy $(HEADERS)w $(HEADERS)

$(FFI_HEADERS) :
	-@if not exist $(FFI_HEADERS) copy $(FFI_HEADERS).vc64 $(FFI_HEADERS)
	
$(STATICLIB): $(WORKDIR) $(FFI_HEADERS) $(HEADERS) $(ASMSRCS) $(OBJECTS)
	$(AR) $(ARFLAGS) $(LDFLAGS) /out:$(STATICLIB) @<<
	$(OBJECTS)
<<


!IF !DEFINED(PREFIX) || "$(PREFIX)" == ""

install:
	@echo ERROR: You must define installation PREFIX=destination

!ELSE

install: all
	-@xcopy "$(TOPDIR)\include\*.h" "$(DESTINC)\" /Y /Q
	-@xcopy "$(SRCDIR)\x86\ffitarget.h" "$(DESTINC)\" /Y /Q
	-@xcopy "$(WORKDIR)\$(LALIBNAME)$(LA)" "$(DESTLIB)\" /Y /Q
	-@xcopy "$(WORKDIR)\$(SOLIBNAME)$(LA)" "$(DESTLIB)\" /Y /Q
	-@xcopy "$(WORKDIR)\$(SOLIBNAME)$(SO)" "$(DESTBIN)\" /Y /Q
	-@xcopy "$(WORKDIR)\$(SOLIBNAME).pdb" "$(DESTLIB)\" /Y /Q

!ENDIF

clean:
	-@del /Q $(OBJECTS) 2>NUL
	-@del /Q $(RESOURCES) 2>NUL
	-@del /Q $(ASMSRCS) 2>NUL
	-@del /Q /S $(WORKDIR) 2>NUL

distclean: clean
	-@del /Q $(HEADERS) 2>NUL
	-@del /Q $(TOPDIR)\include\ffi.h 2>NUL
	-@del /Q $(TOPDIR)\fficonfig.h 2>NUL
	-@del /Q $(TOPDIR)\Makefile.vc 2>NUL

