Thomas Hallgren wrote:
> Peter Eisentraut wrote:
>
>> Thomas Hallgren wrote:
>>
>>
>>> # Default shlib naming convention used by the majority of platforms
>>> shlib =
>>> lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
>>> shlib_major = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
>>> shlib_bare = lib$(NAME)$(DLSUFFIX)
>>>
>>> and sure enough, that's what gets used too. So what goes?
>>>
>>
>>
>> You are confusing the naming convention for shared libraries that are
>> intended to be linked into programs (or other libraries) at build
>> time, which normally have to be named libsomething.so because that is
>> what the compiler/linker flag -lsomething resolves to, with the
>> naming convention for shared libraries that are intended to be loaded
>> at run-time (sometimes called plug-ins), which require no particular
>> naming.
>>
>>
>
> In that case, I'd appreciate some advice on how to use the pgxs
> package to compile a 'plug-in'. Looks to me it's only designed to
> compile 'shared libraries'.
>
>
Enumkit's makefile uses pgxs happily to make foo.so without the lib
prefix. The relevant portion reads like this:
MODULES = $(TYPENAME)
DATA_built = $(TYPENAME)-install.sql
ENUMS = junk
SRCS += $(TYPENAME).c
OBJS = $(SRCS:.c=.o)
PGXS := $(shell pg_config --pgxs)
include $(PGXS)
With this,
make TYPENAME=foo ENUMS='"foo","bar"'
produces foo.so.
HTH
cheers
andrew