#-*- Makefile -*-
include ../../gnuwin32/MkRules

all: makeMakedeps DLL implib

CPPFLAGS=-I. -I../../gnuwin32 -I../../include
DEFS=-DGA_DLL_BUILD -DENABLE_NLS=1
CPPFLAGS+=$(DEFS)
CFLAGS=$(OPTFLAGS)
# gives ICE in gcc 4.3.0
gimage-CFLAGS=-O2
image-CFLAGS=-O2

SOURCES=$(wildcard *.c)
OBJECTS=$(foreach i,$(SOURCES),$(basename $i).o)

DLL: libR.dll.a Rgraphapp.dll
	@cp Rgraphapp.dll ../../../bin


ifeq ($(strip $(USE_IMPLIBS)),YES)
implib: libRgraphapp.dll.a
	@$(MKDIR) -p ../../../lib
	@$(CP) libRgraphapp.dll.a ../../../lib
else
implib:
endif

libRgraphapp.dll.a: Rgraphapp.def

Rgraphapp.def: $(OBJECTS)
	@$(ECHO) EXPORTS > $@
	@$(NM) $^ | $(SED) -n 's/^.* [BCDRT] _/ /p' | $(SORT) | uniq > g.def
	@comm -23 g.def ga.hide >> $@
	@$(RM) g.def

Rgraphapp.dll: $(OBJECTS) dllversion.o Rgraphapp.def
	$(DLL) -shared -mwindows -o $@ Rgraphapp.def $(OBJECTS) dllversion.o -L. -lR -lcomctl32 -limm32

## need to break mutual dependence with R.dll
libR.dll.a: R.def

clean:
	$(RM) *.o Rgraphapp.def *~ \#*\# *.d Makedeps

distclean: clean
	$(RM) *.a  *.dll

# Dependencies
dllversion.o: ../../include/Rversion.h
DEPS=$(SOURCES:.c=.d)

makeMakedeps: $(DEPS)
	@$(RM) Makedeps
	@cat $(DEPS) >> Makedeps

-include Makedeps
