// libtwintree.h: int return_one( void ); int return_zero( void ); #### // libtwintree.c: #include "libtwintree.h" int return_one( void ) { return 1; } int return_zero( void ) { return 0; } #### TwinTree.pm : TwinTree.xs cd TwinTree && \ perl Makefile.PL && \ make && \ make test && \ make install TwinTree.xs : libtwintree.so install mkdir -p TwinTree && \ cp libtwintree.h TwinTree && \ h2xs -Oxan TwinTree -L/usr/local/lib -llibtwintree libtwintree.h libtwintree.so : libtwintree.o gcc -shared -Wl,-soname,libtwintree.so -o libtwintree.so libtwintree.o -lc libtwintree.o : gcc -fPIC -g -c -Wall libtwintree.c clean : rm -Rf *.o *.so TwinTree install : libtwintree.so cp libtwintree.so /usr/local/lib && \ ldconfig -n /usr/local/lib #### #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "const-c.inc" MODULE = TwinTree PACKAGE = TwinTree INCLUDE: const-xs.inc