2 # Generates gvimext.dll with gcc.
3 # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
5 # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
6 # Now it is allocated dymanically by the linker by evaluating all DLLs
7 # already loaded in memory. The binary image contains as well information
8 # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
10 # If cross-compiling set this to yes, else set it to no
13 # For the old MinGW 2.95 (the one you get e.g. with debian woody)
14 # set the following variable to yes and check if the executables are
15 # really named that way.
16 # If you have a newer MinGW or you are using cygwin set it to no and
17 # check also the executables
22 ifeq ($(MINGWOLD
),yes
)
23 CXXFLAGS
:= -O2
-mno-cygwin
-fvtable-thunks
25 CXXFLAGS
:= -O2
-mno-cygwin
28 CXXFLAGS
:= -O2
-mno-cygwin
29 ifneq (sh.exe
, $(SHELL
))
35 CXX
:= $(CROSS_COMPILE
)g
++
36 WINDRES
:= $(CROSS_COMPILE
)windres
39 DEFFILE
= gvimext_ming.def
44 .PHONY
: all all-before all-after
clean clean-custom
46 all: all-before
$(DLL
) all-after
48 $(DLL
): $(OBJ
) $(RES
) $(DEFFILE
)
49 $(CXX
) -shared
$(CXXFLAGS
) -s
-o
$@ \
50 -Wl
,--enable-auto-image-base \
51 -Wl
,--enable-auto-import \
54 -Wl
,--no-whole-archive \
57 gvimext.o
: gvimext.
cpp
58 $(CXX
) $(CXXFLAGS
) -DFEAT_GETTEXT
-c
$?
-o
$@
60 $(RES
): gvimext_ming.rc
61 $(WINDRES
) --input-format
=rc
--output-format
=coff
-DMING
$?
-o
$@
64 -$(DEL
) $(OBJ
) $(RES
) $(DLL
)