Thomas Hallgren schrieb:
> I have a minor issue with Makefile.shlib. Compiling with win32 it spits
> out these warnings (the same is true for Cygwin)
>
> Makefile.shlib:327: warning: overriding commands for target `libpljava.a'
> Makefile.shlib:262: warning: ignoring old commands for target
> `libpljava.a'
>
> As it turns out, the rule to make the lib$(NAME).a actually has commands
> defined in multiple places when Cygwin or win32 is used. In global scope
> we find the following at line 260:
>
> lib$(NAME).a: $(OBJS)
> ifdef MK_NO_LORDER
> $(LINK.static) $@ $^
> else
> $(LINK.static) $@ `$(LORDER) $^ | tsort`
> endif
> $(RANLIB) $@
>
>
> Then, further down and win32 specific on line 325:
>
> $(shlib) lib$(NAME).a: $(OBJS) ^^^^^^^^^^^^^
This is wrong. Those static import libs should be called
lib$(NAME).dll.a and are a completely different beast than the pure
static lib from above. But it will only bite when ever a module wants
both, static AND shared libs.
> ifndef DLL_DEFFILE
> $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def
> $(OBJS)
> $(DLLWRAP) $(LDFLAGS_SL) -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
> else
> $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib)
> $(DLLWRAP_FLAGS) --def $(DLL_DEFFILE) $(OBJS) $(SHLIB_LINK)
> $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def
> $(DLL_DEFFILE) --output-lib lib$(NAME).a
> endif
>
> endif # PORTNAME == win32
>
> As I said, it's is no big issue since it just results in two warnings.
--
Man is by nature a political animal. (Aristotle, Politics)