diff configure.rc @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children ed19b429a152
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configure.rc	Thu Mar 19 22:24:28 2015 +0100
@@ -0,0 +1,234 @@
+#!/bin/rc
+#//////////////////////////////////////////////////////////////////////////////
+#
+# Copyright (c) 2007-2010 Daniel Adler <dadler@uni-goettingen.de>, 
+#                         Tassilo Philipp <tphilipp@potion-studios.com>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+#//////////////////////////////////////////////////////////////////////////////
+
+# --- configure settings ------------------------------------------------------
+
+PACKAGE=dyncall
+CONFIG_PREFIX=/usr/local #@@@
+
+# --- output error message ----------------------------------------------------
+fn error {
+  echo error: $*
+  exit 1
+}
+
+# --- output warning message --------------------------------------------------
+
+fn warning {
+  echo warning: $*
+}
+
+# --- output info message -----------------------------------------------------
+
+fn info {
+  echo $*
+}
+
+# --- print usage -------------------------------------------------------------
+
+fn usage {
+  echo $PACKAGE' configuration shell-script'
+  echo 'Usage:'
+  echo '  configure [ options ]'
+  echo
+  echo 'Options:'
+  echo '  --help'
+  echo '   -h                print this page'
+  #echo
+  #echo '  --target-x86       build for x86 architecture platform'
+  #echo '  --target-x64       build for x64 architecture platform'
+  #echo '  --target-ppc32     build for ppc32 architecture platform'
+  #echo '  --target-arm-arm   build for ARM architecture platform (ARM mode)'
+  #echo '  --target-arm-thumb build for ARM architecture platform (THUMB mode)'
+  #echo
+  #echo '  --tool-pcc         use Portable C Compiler'
+  #echo 
+  #echo '  --asm-xa           use Plan9 Assemblers (0a, 1a, 2a, etc.)'
+  #echo
+  #echo '  --config-release   build release version (default)'
+  #echo '  --config-debug     build debug version'
+  echo
+  exit 0
+}
+
+# --- guess operating system -------------------------------------------------
+
+CONFIG_OS=()
+fn guess_os {
+  CONFIG_OS='plan9'
+  info 'guess os '$CONFIG_OS
+}
+
+# --- guess architecture -----------------------------------------------------
+
+CONFIG_ARCH=()
+fn guess_arch {
+  CONFIG_ARCH='x86'
+  switch($cputype) {
+    case 386
+      CONFIG_ARCH='x86'
+    case amd64
+      CONFIG_ARCH='x64'
+    case arm
+      CONFIG_ARCH='arm32_arm'
+    case power
+      CONFIG_ARCH='ppc32'
+    case mips
+      CONFIG_ARCH='mips32'
+    case *
+      warning 'unknown architecture '$cputype' - using default (x86)'
+  }
+  info 'guess arch '$CONFIG_ARCH
+}
+
+# --- guess tool chain -------------------------------------------------------
+
+CONFIG_TOOL=()
+fn guess_tool {
+  #CONFIG_TOOL=`{grep CC /$objtype/mkfile | sed s/CC.//}
+  CONFIG_TOOL='pcc'
+  info 'guess tool '$CONFIG_TOOL
+}
+
+# --- guess assembler --------------------------------------------------------
+
+CONFIG_ASM=()
+fn guess_asm {
+  CONFIG_ASM=`{grep AS /$objtype/mkfile | sed s/AS.//}
+  info 'guess assembler '$CONFIG_ASM
+}
+
+# --- process arguments ------------------------------------------------------
+
+fn args {
+  while(! ~ $#* 0 && ~ $1 -*) {
+    OPT=$1
+    shift
+
+    switch($OPT) {
+      case --help -h
+        usage
+      #case --target-x86
+        #CONFIG_ARCH='x86'
+      #case --target-x64
+        #CONFIG_ARCH='x64'
+      #case --target-ppc32
+        #CONFIG_ARCH='ppc32'
+      #case --target-arm-arm
+        #CONFIG_ARCH='arm32_arm'
+      #case --target-arm-thumb
+        #CONFIG_ARCH='arm32_thumb'
+      #case --tool-pcc
+        #CONFIG_TOOL=pcc
+        #CONFIG_ASM=2a
+      #case --tool-xa
+        #CONFIG_ASM=2a
+      #case --config-release
+        #CONFIG_CONFIG=release
+      #case --config-debug
+        #CONFIG_CONFIG=debug
+      case *
+        warning 'unknown option '$OPT
+    }
+  }
+}
+
+# --- guess variables --------------------------------------------------------
+
+fn guess {
+  if(~ $#CONFIG_OS 0) {
+    guess_os
+    if(~ $#CONFIG_OS 0) {
+      error 'unsupported operating system '$OS
+    }
+  }
+
+  if(~ $#CONFIG_ARCH 0) {
+    guess_arch 
+    if(~ $#CONFIG_ARCH 0) {
+      error 'unsupported architecture '$ARCH
+    }
+  }
+
+  if(~ $#CONFIG_TOOL 0) {
+    guess_tool
+    if(~ $#CONFIG_TOOL 0) {
+      error 'no tool'
+    }
+  }
+
+  if(~ $#CONFIG_ASM 0) {
+    guess_asm
+    if(~ $#CONFIG_ASM 0) {
+      error 'no assembler tool'
+    }
+  }
+
+  if(~ $#CONFIG_CONFIG 0) {
+    CONFIG_CONFIG=release
+  }
+}
+  
+# --- set default variables --------------------------------------------------
+
+fn set_defaults {
+  CONFIG_HOST=$CONFIG_OS
+}
+
+# --- derive variables -------------------------------------------------------
+
+fn derive_vars {
+  BUILD_HOST=$CONFIG_HOST
+  if(! ~ $CONFIG_HOST $CONFIG_OS) {
+    BUILD_HOST=$CONFIG_HOST'_'$CONFIG_OS
+  }
+}
+
+# --- write ConfigVars files ------------------------------------------------
+
+fn output {
+  echo '#auto-generated by '$PACKAGE'/configure' >$1
+  echo 'CONFIG_PACKAGE='$PACKAGE >>$1
+  echo 'CONFIG_HOST='$CONFIG_HOST >>$1
+  echo 'CONFIG_OS='$CONFIG_OS >>$1
+  echo 'CONFIG_ARCH='$CONFIG_ARCH >>$1
+  echo 'CONFIG_TOOL='$CONFIG_TOOL >>$1
+  echo 'CONFIG_ASM='$CONFIG_ASM >>$1
+  echo 'CONFIG_CONFIG='$CONFIG_CONFIG >>$1
+  echo 'CONFIG_PREFIX='$CONFIG_PREFIX >>$1
+  if(! ~ $#CONFIG_BUILDPREFIX 0) {
+    echo 'CONFIG_BUILDPREFIX='$CONFIG_BUILDPREFIX >>$1
+  }
+  echo '' >>$1
+}
+
+# --- main -------------------------------------------------------------------
+
+fn main {
+  args $*
+  info '* configure package '$PACKAGE
+  guess
+  set_defaults
+  derive_vars
+  output ConfigVars 
+}
+
+main $*
+