1#! /bin/sh 2 3# 4# Copyright (c) 2009 The NetBSD Foundation, Inc. 5# All rights reserved. 6# 7# This code is derived from software contributed to The NetBSD Foundation 8# by Alistair Crooks (agc@netbsd.org) 9# 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. 18# 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. 30# 31 32# rushed script to call swig and compile the output 33# Usage: swigit <lang> <module> 34 35prefix=$(pkg_info -qp swig | awk '{ print $2 }') 36 37lang=$1 38module=$2 39 40case "$lang" in 41"") 42 echo "You need to specify an interpreted language like perl or tcl" 43 exit 1 44 ;; 45perl) 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" 50 ;; 51python) 52 swigflags="-shadow" 53 dir=$(pkg_info -qL 'python*' | awk '/Python.h/ { gsub("/Python.h$", ""); print }') 54 incpath='CPPFLAGS+=-I'"$dir" 55 ;; 56esac 57 58case "$module" in 59"") 60 echo "You need to specify a module" 61 exit 1 62 ;; 63esac 64 65cat << EOF > ${module}${lang}.i 66%module ${module}${lang} 67%{ 68#include <${module}.h> 69${cstrings1} 70${cstrings2} 71%} 72%include ${module}.h 73EOF 74 75cp ../../include/${module}.h . 76 77swig ${swigflags} -${lang} ${module}${lang}.i 78 79cat << EOF > Makefile 80# \$NetBSD\$ 81# Automatically generated by swigit wrapper script 82 83PREFIX=${prefix} 84 85LIB=${module}${lang} 86SRCS=${module}${lang}_wrap.c 87WARNS=0 88MKMAN=no 89CPPFLAGS+=-I\${PREFIX}/include 90${incpath} 91LDFLAGS+=-L\${PREFIX}/lib 92LDADD+=-l${module} 93 94.include <bsd.lib.mk> 95EOF 96 97cat << EOF > shlib_version 98major=0 99minor=0 100EOF 101 102env USETOOLS=no make 103 104case "${lang}" in 105python) 106 ln -s lib${module}${lang}.so _${module}${lang}.so 107 ;; 108esac 109