|
Packit |
4a5d52 |
## -*- mode: makefile -*-
|
|
Packit |
4a5d52 |
## Makefile for building the libIDL dll with Microsoft C
|
|
Packit |
4a5d52 |
## Use: nmake -f Makefile.msc
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
# As far as I can see a MSVC-built libIDL DLL is binary compatible
|
|
Packit |
4a5d52 |
# with a gcc-built one, except for the IDL_tree_to_IDL() function
|
|
Packit |
4a5d52 |
# which has a FILE* parameter. (FILE structs are meaningless in a
|
|
Packit |
4a5d52 |
# module that uses a different C runtime.) That function is not used
|
|
Packit |
4a5d52 |
# by ORBit2 at least, though. Thus use the same name for the DLL. Keep
|
|
Packit |
4a5d52 |
# this in sync with current and age in LT_VERSION (@LT_VERSION@).
|
|
Packit |
4a5d52 |
CURRENT_MINUS_AGE = 0
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
IDL_DLL = libIDL-2-$(CURRENT_MINUS_AGE).dll
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
all: __glib_cflags.mk $(IDL_DLL) tstidl.exe
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
LDOPT = -debug
|
|
Packit |
4a5d52 |
CCOPT =
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
CC = cl -GF $(CCOPT) -MD -W3 -nologo
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
MT = mt
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
LDFLAGS = -link -incremental:no -libpath:c:/opt/proxy-libintl/lib $(LDOPT)
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
# Indirect file with GLib cflags
|
|
Packit |
4a5d52 |
__glib_cflags.mk:
|
|
Packit |
4a5d52 |
pkg-config --msvc-syntax --cflags glib-2.0 >$@
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
# And libs
|
|
Packit |
4a5d52 |
__glib_libs.mk:
|
|
Packit |
4a5d52 |
for /F "delims==" %i in ('pkg-config --msvc-syntax --libs glib-2.0') \
|
|
Packit |
4a5d52 |
do echo $(LDFLAGS) %i >$@
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
CFLAGS = -Iinclude -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS @__glib_cflags.mk
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
# All .c files go into the DLL except tstidl.c, so we can use _DLIBIDL_COMPILATION
|
|
Packit |
4a5d52 |
# in general, correspondingly then build tstidl.exe directly from tstidl.c
|
|
Packit |
4a5d52 |
DEFS = -DLIBIDL_VERSION=\"@LIBIDL_VERSION@\" \
|
|
Packit |
4a5d52 |
-DCPP_PROGRAM="\"cl.exe /E /nologo\"" \
|
|
Packit |
4a5d52 |
-DSTDC_HEADERS -DHAVE_POPEN -DHAVE_STDDEF_H -DHAVE_WCHAR_H \
|
|
Packit |
4a5d52 |
-DYYTEXT_POINTER -DYYDEBUG \
|
|
Packit |
4a5d52 |
-DG_LOG_DOMAIN=\"libIDL\" \
|
|
Packit |
4a5d52 |
-DLIBIDL_COMPILATION
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
libIDL_OBJECTS = \
|
|
Packit |
4a5d52 |
parser.obj \
|
|
Packit |
4a5d52 |
lexer.obj \
|
|
Packit |
4a5d52 |
ns.obj \
|
|
Packit |
4a5d52 |
util.obj
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
$(IDL_DLL): $(libIDL_OBJECTS) libIDL.def __glib_libs.mk
|
|
Packit |
4a5d52 |
$(CC) $(CFLAGS) -LD -Fe$@ $(libIDL_OBJECTS) libIDL.def @__glib_libs.mk -link -implib:libIDL-2.lib
|
|
Packit |
4a5d52 |
$(MT) -manifest $@.manifest -outputresource:$@;2
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
.c.obj:
|
|
Packit |
4a5d52 |
$(CC) $(CFLAGS) $(DEFS) -c $<
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
tstidl.exe: $(IDL_DLL) tstidl.c
|
|
Packit |
4a5d52 |
$(CC) $(CFLAGS) -Fe$@ tstidl.c libIDL-2.lib @__glib_libs.mk
|
|
Packit |
4a5d52 |
$(MT) -manifest $@.manifest -outputresource:$@;1
|
|
Packit |
4a5d52 |
|
|
Packit |
4a5d52 |
clean:
|
|
Packit |
4a5d52 |
del *.exe
|
|
Packit |
4a5d52 |
del *.obj
|
|
Packit |
4a5d52 |
del *.dll
|
|
Packit |
4a5d52 |
del *.lib
|
|
Packit |
4a5d52 |
del *.err
|
|
Packit |
4a5d52 |
del *.map
|
|
Packit |
4a5d52 |
del *.exp
|
|
Packit |
4a5d52 |
del *.pdb
|
|
Packit |
4a5d52 |
del *.manifest
|
|
Packit |
4a5d52 |
del __*.mk
|