Mercurial > pub > dyncall > dyncall
annotate configure.rc @ 653:0c8838766866
- riscv64 support for calls and callbacks (but lacking aggr and syscall support) - thanks Jun Jeon! :)
- mark riscv64 as implemented in manual overview
author | Tassilo Philipp |
---|---|
date | Thu, 07 Mar 2024 17:42:13 +0100 |
parents | a1732b269476 |
children |
rev | line source |
---|---|
0 | 1 #!/bin/rc |
2 #////////////////////////////////////////////////////////////////////////////// | |
3 # | |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
4 # Copyright (c) 2007-2022 Daniel Adler <dadler@uni-goettingen.de>, |
0 | 5 # Tassilo Philipp <tphilipp@potion-studios.com> |
6 # | |
7 # Permission to use, copy, modify, and distribute this software for any | |
8 # purpose with or without fee is hereby granted, provided that the above | |
9 # copyright notice and this permission notice appear in all copies. | |
10 # | |
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
18 # | |
19 #////////////////////////////////////////////////////////////////////////////// | |
20 | |
21 # --- configure settings ------------------------------------------------------ | |
22 | |
23 PACKAGE=dyncall | |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
24 |
0 | 25 |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
26 # --- message helpers ---------------------------------------------------- |
0 | 27 fn error { |
28 echo error: $* | |
29 exit 1 | |
30 } | |
31 fn warning { | |
32 echo warning: $* | |
33 } | |
34 fn info { | |
35 echo $* | |
36 } | |
37 | |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
38 |
0 | 39 # --- print usage ------------------------------------------------------------- |
40 | |
41 fn usage { | |
42 echo $PACKAGE' configuration shell-script' | |
43 echo 'Usage:' | |
44 echo ' configure [ options ]' | |
45 echo | |
46 echo 'Options:' | |
47 echo ' --help' | |
48 echo ' -h print this page' | |
49 #echo | |
50 #echo ' --target-x86 build for x86 architecture platform' | |
51 #echo ' --target-x64 build for x64 architecture platform' | |
52 #echo ' --target-ppc32 build for ppc32 architecture platform' | |
53 #echo ' --target-arm-arm build for ARM architecture platform (ARM mode)' | |
54 #echo ' --target-arm-thumb build for ARM architecture platform (THUMB mode)' | |
55 #echo | |
56 #echo ' --tool-pcc use Portable C Compiler' | |
57 #echo | |
58 #echo ' --asm-xa use Plan9 Assemblers (0a, 1a, 2a, etc.)' | |
59 echo | |
60 exit 0 | |
61 } | |
62 | |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
63 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
64 # --- guess os, arch, ... ------------------------------------------------- |
0 | 65 |
66 CONFIG_OS=() | |
67 fn guess_os { | |
68 CONFIG_OS='plan9' | |
69 info 'guess os '$CONFIG_OS | |
70 } | |
71 | |
72 CONFIG_ARCH=() | |
73 fn guess_arch { | |
74 CONFIG_ARCH='x86' | |
75 switch($cputype) { | |
76 case 386 | |
77 CONFIG_ARCH='x86' | |
78 case amd64 | |
79 CONFIG_ARCH='x64' | |
80 case arm | |
81 CONFIG_ARCH='arm32_arm' | |
82 case power | |
83 CONFIG_ARCH='ppc32' | |
84 case mips | |
85 CONFIG_ARCH='mips32' | |
86 case * | |
87 warning 'unknown architecture '$cputype' - using default (x86)' | |
88 } | |
89 info 'guess arch '$CONFIG_ARCH | |
90 } | |
91 | |
92 CONFIG_TOOL=() | |
93 fn guess_tool { | |
94 #CONFIG_TOOL=`{grep CC /$objtype/mkfile | sed s/CC.//} | |
95 CONFIG_TOOL='pcc' | |
96 info 'guess tool '$CONFIG_TOOL | |
97 } | |
98 | |
99 CONFIG_ASM=() | |
100 fn guess_asm { | |
101 CONFIG_ASM=`{grep AS /$objtype/mkfile | sed s/AS.//} | |
102 info 'guess assembler '$CONFIG_ASM | |
103 } | |
104 | |
105 fn guess { | |
106 if(~ $#CONFIG_OS 0) { | |
107 guess_os | |
108 if(~ $#CONFIG_OS 0) { | |
109 error 'unsupported operating system '$OS | |
110 } | |
111 } | |
112 | |
113 if(~ $#CONFIG_ARCH 0) { | |
114 guess_arch | |
115 if(~ $#CONFIG_ARCH 0) { | |
116 error 'unsupported architecture '$ARCH | |
117 } | |
118 } | |
119 | |
120 if(~ $#CONFIG_TOOL 0) { | |
121 guess_tool | |
122 if(~ $#CONFIG_TOOL 0) { | |
123 error 'no tool' | |
124 } | |
125 } | |
126 | |
127 if(~ $#CONFIG_ASM 0) { | |
128 guess_asm | |
129 if(~ $#CONFIG_ASM 0) { | |
130 error 'no assembler tool' | |
131 } | |
132 } | |
133 } | |
134 | |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
135 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
136 # --- process arguments ------------------------------------------------------ |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
137 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
138 fn args { |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
139 while(! ~ $#* 0 && ~ $1 -*) { |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
140 OPT=$1 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
141 shift |
0 | 142 |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
143 switch($OPT) { |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
144 case --help -h |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
145 usage |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
146 #case --target-x86 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
147 #CONFIG_ARCH='x86' |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
148 #case --target-x64 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
149 #CONFIG_ARCH='x64' |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
150 #case --target-ppc32 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
151 #CONFIG_ARCH='ppc32' |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
152 #case --target-arm-arm |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
153 #CONFIG_ARCH='arm32_arm' |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
154 #case --target-arm-thumb |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
155 #CONFIG_ARCH='arm32_thumb' |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
156 #case --tool-pcc |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
157 #CONFIG_TOOL=pcc |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
158 #CONFIG_ASM=2a |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
159 #case --tool-xa |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
160 #CONFIG_ASM=2a |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
161 case * |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
162 warning 'unknown option '$OPT |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
163 } |
0 | 164 } |
165 } | |
166 | |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
167 |
0 | 168 |
632
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
169 args $* |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
170 info '* configure package '$PACKAGE |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
171 guess |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
172 |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
173 CONFIG_HOST=$CONFIG_OS |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
174 BUILD_HOST=$CONFIG_HOST |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
175 if(! ~ $CONFIG_HOST $CONFIG_OS) { |
ed19b429a152
- added explicit arm64 target, and clang tool options to Windows' configure.bat
Tassilo Philipp
parents:
0
diff
changeset
|
176 BUILD_HOST=$CONFIG_HOST'_'$CONFIG_OS |
0 | 177 } |
178 | |
638
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
179 CONFFILE=Makefile.config |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
180 echo '#auto-generated by '$PACKAGE'/configure' >$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
181 echo 'CONFIG_PACKAGE='$PACKAGE >>$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
182 echo 'CONFIG_HOST='$CONFIG_HOST >>$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
183 echo 'CONFIG_OS='$CONFIG_OS >>$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
184 echo 'CONFIG_ARCH='$CONFIG_ARCH >>$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
185 echo 'CONFIG_TOOL='$CONFIG_TOOL >>$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
186 echo 'CONFIG_ASM='$CONFIG_ASM >>$CONFFILE |
a1732b269476
- configure.rc fix due to bad prev refactoring (ed19b429a152)
Tassilo Philipp
parents:
632
diff
changeset
|
187 echo '' >>$CONFFILE |
0 | 188 |