Need for DLLINIT in Makefile.shlib

Bruce Momjian <[email protected]> Mon, 11 Oct 2004 18:22:57 -0400 (EDT)
Newsgroups gmane.comp.db.postgresql.devel.win32,gmane.comp.db.postgresql.devel.general,gmane.comp.db.postgresql.cygwin
Message-ID <[email protected]>
I am curious why Cygwin needs DLLINIT in Makefile.shlib, and Win32
doesn't:

	# Cygwin case
	$(shlib) lib$(NAME).a: $(OBJS) $(DLLINIT)
	        $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS)
	        $(DLLWRAP) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(DLLINIT) $(SHLIB_LINK)
	        $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a
	
	$(DLLINIT): $(DLLINIT:%.o=%.c)
	        $(MAKE) -C $(@D) $(@F)
	
	endif # PORTNAME == cygwin
	
	else # PORTNAME == win32
	
	# win32 case
	$(shlib) lib$(NAME).a: $(OBJS)
	        $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS)
	        $(DLLWRAP) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK)
	        $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a
	
	endif # PORTNAME == win32

The only difference I see is that Cygwin uses $(DLLINIT) while Win32 does
not.  Is that correct?  Why?

Both set DLLINIT in their makefiles:

	DLLINIT = $(top_builddir)/src/utils/dllinit.o

Could they be merged into a single snipped of code?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [email protected]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings