public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* DLL that does not use cygwin ?
@ 1999-11-17  7:43 Torben Mikael Hansen
  1999-11-17 15:58 ` Eric Feliu
  1999-11-30 23:39 ` Torben Mikael Hansen
  0 siblings, 2 replies; 4+ messages in thread
From: Torben Mikael Hansen @ 1999-11-17  7:43 UTC (permalink / raw)
  To: 'cygwin'

How do I build a DLL that does not use cygwin1.dll

I've tried the following but the DLL still has cygwin1.dll in its import
table

gcc -c axdrv.cpp -Wall -mno-cygwin
ld --base-file axdrv.base --dll -o axdrv.dll -e _dll_entry@12 axdrv.o
dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
--output-exp axdrv.exp
ld --base-file axdrv.base axdrv.exp --dll -o axdrv.dll -e _dll_entry@12
axdrv.o 
dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
--output-exp axdrv.exp
ld axdrv.exp --dll -o axdrv.dll -e _dll_entry@12 axdrv.o

Putting a -mno-cygwin anywhere else results in compile time errors.

Torben

___________________________________________________
Torben Mikael Hansen
Research Assistant
Nanotechnology
Mikroelektronik Centret
DTU Building 345e, DK-2800 Kgs. Lyngby, Denmark

office:	157
tel.:   	+45 4525 5731
lab:		+45 4525 5812
fax:		+45 4588 7762
email: 	tmh@mic.dtu.dk


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: DLL that does not use cygwin ?
  1999-11-17  7:43 DLL that does not use cygwin ? Torben Mikael Hansen
@ 1999-11-17 15:58 ` Eric Feliu
  1999-11-30 23:39   ` Eric Feliu
  1999-11-30 23:39 ` Torben Mikael Hansen
  1 sibling, 1 reply; 4+ messages in thread
From: Eric Feliu @ 1999-11-17 15:58 UTC (permalink / raw)
  To: Torben Mikael Hansen; +Cc: 'cygwin'

Here is a Makefile that I got from one of Mummit Khan's help files:

#
# Makefile for Cygwin in -mno-cygwin mode. This builds a DLL that is
# independent of Cygwin DLL and only depends on MS CRTDLL runtime.
#
# If you want to use Mingw32 gcc, then use the makeit.bat file instead.
#
CC = gcc

# The root directory for mingw-extra package. You can get this package
# from the same place where you downloaded egcs-1.1.2-cygb20 from.
# You should also read the -mno-cygwin howto available from:
#  http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
#
MINGW_EXTRA_ROOT = /usr/local/mingw-extra
MINGW_INCLUDES = -I$(MINGW_EXTRA_ROOT)/include
MINGW_LIBDIRS = -I$(MINGW_EXTRA_ROOT)/lib

DEBUG = -g -O2
# The -mrtd flag tells the compiler to use the PASCAL or "stdcall" calling
# convention required by VBA/Excel/etc.
CFLAGS = -mrtd $(DEBUG)
CPPFLAGS = $(MINGW_INCLUDES)

AS = as
DLLTOOL = dlltool
DLLWRAP = dllwrap

#
# Various targets to build.
#
DLL_NAME = test.dll
DLL_EXP_DEF = test.def

all: $(DLL_NAME)

#
# sources, objects, etc.
#
SRCS  = $(wildcard *.c)
OBJS := $(OBJS:.c=.o)

#
# DLL related variables. These are used when building the DLL. See later.
#

# any special flags that you need to pass to the F77 compiler when building
# the DLL. (lots of software need _DLL defined).
DLL_CFLAGS = -DBUILDING_DLL=1
# This is where you pass linker flags, such as library search path, alternate
# entry point, etc. The -s flag strips the final DLL.
DLL_LDFLAGS = $(MINGW_LIBDIRS) -s -W1,-e,_cygwin_nocygwin_init@12
# any extra libraries that your DLL may depend on.
DLL_LDLIBS =

#
# your sources etc that go into the DLL.
#
DLL_SRCS = test.c
DLL_OBJS = test.o

###
#
# Making DLL
#
###

#
# Note that we let dllwrap create both the DEF and IMPORT library in
# one shot. No need to run dlltool anymore.
#
DLLWRAP_FLAGS = --export-all --output-def $(DLL_EXP_DEF) \
 --target=i386-mingw32 -mno-cygwin \
 --driver-name $(CC)

$(DLL_NAME) $(DLL_EXP_DEF): $(DLL_OBJS)
 $(DLLWRAP) $(DLLWRAP_FLAGS) -o $(DLL_NAME) \
     $(DLL_OBJS) $(DLL_LDFLAGS) $(DLL_LDLIBS)

#
# dependencies.
#

#fdll.o: fdll.c

test.o: test.c


#
# default rules for building DLL objects. Note that client programs (ie.,
# the ones that *use* the DLL) have to be compiled without the DLL_CFLAGS
# flags.
#
.c.o:
 $(CC) -c $(CPPFLAGS) $(DLL_CFLAGS) $(CFLAGS) -o $@ $<

clean:
 -rm -f $(OBJS) $(DLL_OBJS) $(DLL_NAME) $(DLL_EXP_DEF)


This should allow you to build a dll that is not dependent on cygwin1.dll.

Eric

Torben Mikael Hansen wrote:

> How do I build a DLL that does not use cygwin1.dll
>
> I've tried the following but the DLL still has cygwin1.dll in its import
> table
>
> gcc -c axdrv.cpp -Wall -mno-cygwin
> ld --base-file axdrv.base --dll -o axdrv.dll -e _dll_entry@12 axdrv.o
> dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
> --output-exp axdrv.exp
> ld --base-file axdrv.base axdrv.exp --dll -o axdrv.dll -e _dll_entry@12
> axdrv.o
> dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
> --output-exp axdrv.exp
> ld axdrv.exp --dll -o axdrv.dll -e _dll_entry@12 axdrv.o
>
> Putting a -mno-cygwin anywhere else results in compile time errors.
>
> Torben
>
> ___________________________________________________
> Torben Mikael Hansen
> Research Assistant
> Nanotechnology
> Mikroelektronik Centret
> DTU Building 345e, DK-2800 Kgs. Lyngby, Denmark
>
> office: 157
> tel.:           +45 4525 5731
> lab:            +45 4525 5812
> fax:            +45 4588 7762
> email:  tmh@mic.dtu.dk
>
>   ------------------------------------------------------------------------
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe@sourceware.cygnus.com




--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* DLL that does not use cygwin ?
  1999-11-17  7:43 DLL that does not use cygwin ? Torben Mikael Hansen
  1999-11-17 15:58 ` Eric Feliu
@ 1999-11-30 23:39 ` Torben Mikael Hansen
  1 sibling, 0 replies; 4+ messages in thread
From: Torben Mikael Hansen @ 1999-11-30 23:39 UTC (permalink / raw)
  To: 'cygwin'

How do I build a DLL that does not use cygwin1.dll

I've tried the following but the DLL still has cygwin1.dll in its import
table

gcc -c axdrv.cpp -Wall -mno-cygwin
ld --base-file axdrv.base --dll -o axdrv.dll -e _dll_entry@12 axdrv.o
dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
--output-exp axdrv.exp
ld --base-file axdrv.base axdrv.exp --dll -o axdrv.dll -e _dll_entry@12
axdrv.o 
dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
--output-exp axdrv.exp
ld axdrv.exp --dll -o axdrv.dll -e _dll_entry@12 axdrv.o

Putting a -mno-cygwin anywhere else results in compile time errors.

Torben

___________________________________________________
Torben Mikael Hansen
Research Assistant
Nanotechnology
Mikroelektronik Centret
DTU Building 345e, DK-2800 Kgs. Lyngby, Denmark

office:	157
tel.:   	+45 4525 5731
lab:		+45 4525 5812
fax:		+45 4588 7762
email: 	tmh@mic.dtu.dk


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: DLL that does not use cygwin ?
  1999-11-17 15:58 ` Eric Feliu
@ 1999-11-30 23:39   ` Eric Feliu
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Feliu @ 1999-11-30 23:39 UTC (permalink / raw)
  To: Torben Mikael Hansen; +Cc: 'cygwin'

Here is a Makefile that I got from one of Mummit Khan's help files:

#
# Makefile for Cygwin in -mno-cygwin mode. This builds a DLL that is
# independent of Cygwin DLL and only depends on MS CRTDLL runtime.
#
# If you want to use Mingw32 gcc, then use the makeit.bat file instead.
#
CC = gcc

# The root directory for mingw-extra package. You can get this package
# from the same place where you downloaded egcs-1.1.2-cygb20 from.
# You should also read the -mno-cygwin howto available from:
#  http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
#
MINGW_EXTRA_ROOT = /usr/local/mingw-extra
MINGW_INCLUDES = -I$(MINGW_EXTRA_ROOT)/include
MINGW_LIBDIRS = -I$(MINGW_EXTRA_ROOT)/lib

DEBUG = -g -O2
# The -mrtd flag tells the compiler to use the PASCAL or "stdcall" calling
# convention required by VBA/Excel/etc.
CFLAGS = -mrtd $(DEBUG)
CPPFLAGS = $(MINGW_INCLUDES)

AS = as
DLLTOOL = dlltool
DLLWRAP = dllwrap

#
# Various targets to build.
#
DLL_NAME = test.dll
DLL_EXP_DEF = test.def

all: $(DLL_NAME)

#
# sources, objects, etc.
#
SRCS  = $(wildcard *.c)
OBJS := $(OBJS:.c=.o)

#
# DLL related variables. These are used when building the DLL. See later.
#

# any special flags that you need to pass to the F77 compiler when building
# the DLL. (lots of software need _DLL defined).
DLL_CFLAGS = -DBUILDING_DLL=1
# This is where you pass linker flags, such as library search path, alternate
# entry point, etc. The -s flag strips the final DLL.
DLL_LDFLAGS = $(MINGW_LIBDIRS) -s -W1,-e,_cygwin_nocygwin_init@12
# any extra libraries that your DLL may depend on.
DLL_LDLIBS =

#
# your sources etc that go into the DLL.
#
DLL_SRCS = test.c
DLL_OBJS = test.o

###
#
# Making DLL
#
###

#
# Note that we let dllwrap create both the DEF and IMPORT library in
# one shot. No need to run dlltool anymore.
#
DLLWRAP_FLAGS = --export-all --output-def $(DLL_EXP_DEF) \
 --target=i386-mingw32 -mno-cygwin \
 --driver-name $(CC)

$(DLL_NAME) $(DLL_EXP_DEF): $(DLL_OBJS)
 $(DLLWRAP) $(DLLWRAP_FLAGS) -o $(DLL_NAME) \
     $(DLL_OBJS) $(DLL_LDFLAGS) $(DLL_LDLIBS)

#
# dependencies.
#

#fdll.o: fdll.c

test.o: test.c


#
# default rules for building DLL objects. Note that client programs (ie.,
# the ones that *use* the DLL) have to be compiled without the DLL_CFLAGS
# flags.
#
.c.o:
 $(CC) -c $(CPPFLAGS) $(DLL_CFLAGS) $(CFLAGS) -o $@ $<

clean:
 -rm -f $(OBJS) $(DLL_OBJS) $(DLL_NAME) $(DLL_EXP_DEF)


This should allow you to build a dll that is not dependent on cygwin1.dll.

Eric

Torben Mikael Hansen wrote:

> How do I build a DLL that does not use cygwin1.dll
>
> I've tried the following but the DLL still has cygwin1.dll in its import
> table
>
> gcc -c axdrv.cpp -Wall -mno-cygwin
> ld --base-file axdrv.base --dll -o axdrv.dll -e _dll_entry@12 axdrv.o
> dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
> --output-exp axdrv.exp
> ld --base-file axdrv.base axdrv.exp --dll -o axdrv.dll -e _dll_entry@12
> axdrv.o
> dlltool --as=as --dllname axdrv.dll --def axdrv.def --base-file axdrv.base
> --output-exp axdrv.exp
> ld axdrv.exp --dll -o axdrv.dll -e _dll_entry@12 axdrv.o
>
> Putting a -mno-cygwin anywhere else results in compile time errors.
>
> Torben
>
> ___________________________________________________
> Torben Mikael Hansen
> Research Assistant
> Nanotechnology
> Mikroelektronik Centret
> DTU Building 345e, DK-2800 Kgs. Lyngby, Denmark
>
> office: 157
> tel.:           +45 4525 5731
> lab:            +45 4525 5812
> fax:            +45 4588 7762
> email:  tmh@mic.dtu.dk
>
>   ------------------------------------------------------------------------
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe@sourceware.cygnus.com




--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1999-11-30 23:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-11-17  7:43 DLL that does not use cygwin ? Torben Mikael Hansen
1999-11-17 15:58 ` Eric Feliu
1999-11-30 23:39   ` Eric Feliu
1999-11-30 23:39 ` Torben Mikael Hansen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).