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 CXX
= i586-mingw32msvc-g
++
24 CXXFLAGS
:= -O2
-mno-cygwin
-fvtable-thunks
25 WINDRES
= i586-mingw32msvc-windres
27 CXX
= i386-mingw32msvc-g
++
28 CXXFLAGS
:= -O2
-mno-cygwin
29 WINDRES
= i386-mingw32msvc-windres
34 CXXFLAGS
:= -O2
-mno-cygwin
35 ifneq (sh.exe
, $(SHELL
))
43 DEFFILE
= gvimext_ming.def
48 .PHONY
: all all-before all-after
clean clean-custom
50 all: all-before
$(DLL
) all-after
52 $(DLL
): $(OBJ
) $(RES
) $(DEFFILE
)
53 $(CXX
) -shared
$(CXXFLAGS
) -s
-o
$@ \
54 -Wl
,--enable-auto-image-base \
55 -Wl
,--enable-auto-import \
58 -Wl
,--no-whole-archive \
61 gvimext.o
: gvimext.
cpp
62 $(CXX
) $(CXXFLAGS
) -DFEAT_GETTEXT
-c
$?
-o
$@
64 $(RES
): gvimext_ming.rc
65 $(WINDRES
) --input-format
=rc
--output-format
=coff
-DMING
$?
-o
$@
68 -$(DEL
) $(OBJ
) $(RES
) $(DLL
)