Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / crypto / external / bsd / netpgp / dist / bindings / swig / swigit
bloba444c0e205d5f043a3a8ae31c6d7058c5cd89fa5
1 #! /bin/sh
4 # Copyright (c) 2009 The NetBSD Foundation, Inc.
5 # All rights reserved.
7 # This code is derived from software contributed to The NetBSD Foundation
8 # by Alistair Crooks (agc@netbsd.org)
10 # Redistribution and use in source and binary forms, with or without
11 # modification, are permitted provided that the following conditions
12 # are met:
13 # 1. Redistributions of source code must retain the above copyright
14 # notice, this list of conditions and the following disclaimer.
15 # 2. Redistributions in binary form must reproduce the above copyright
16 # notice, this list of conditions and the following disclaimer in the
17 # documentation and/or other materials provided with the distribution.
19 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 # POSSIBILITY OF SUCH DAMAGE.
32 # rushed script to call swig and compile the output
33 # Usage: swigit <lang> <module>
35 prefix=$(pkg_info -qp swig | awk '{ print $2 }')
37 lang=$1
38 module=$2
40 case "$lang" in
41 "")
42 echo "You need to specify an interpreted language like perl or tcl"
43 exit 1
45 perl)
46 dir=$(pkg_info -qL perl | awk '/EXTERN.h/ { gsub("/EXTERN.h$", ""); print }')
47 cstrings1='#undef SvPOK'
48 cstrings2='#define SvPOK(x) 1'
49 incpath='CPPFLAGS+=-I'"$dir"
51 python)
52 swigflags="-shadow"
53 dir=$(pkg_info -qL 'python*' | awk '/Python.h/ { gsub("/Python.h$", ""); print }')
54 incpath='CPPFLAGS+=-I'"$dir"
56 esac
58 case "$module" in
59 "")
60 echo "You need to specify a module"
61 exit 1
63 esac
65 cat << EOF > ${module}${lang}.i
66 %module ${module}${lang}
68 #include <${module}.h>
69 ${cstrings1}
70 ${cstrings2}
72 %include ${module}.h
73 EOF
75 cp ../../include/${module}.h .
77 swig ${swigflags} -${lang} ${module}${lang}.i
79 cat << EOF > Makefile
80 # \$NetBSD\$
81 # Automatically generated by swigit wrapper script
83 PREFIX=${prefix}
85 LIB=${module}${lang}
86 SRCS=${module}${lang}_wrap.c
87 WARNS=0
88 MKMAN=no
89 CPPFLAGS+=-I\${PREFIX}/include
90 ${incpath}
91 LDFLAGS+=-L\${PREFIX}/lib
92 LDADD+=-l${module}
94 .include <bsd.lib.mk>
95 EOF
97 cat << EOF > shlib_version
98 major=0
99 minor=0
102 env USETOOLS=no make
104 case "${lang}" in
105 python)
106 ln -s lib${module}${lang}.so _${module}${lang}.so
108 esac