Bruce Momjian schrieb:
> 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?
Good point!
Out of my head: I don't think that we (cygwin) don't need that anymore.
With newer binutils it should get autogenerated. But I'll have to test
before you can remove that dir.
--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/