home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gdb-4.16-base.tgz / gdb-4.16-base.tar / fsf / gdb / mpw-configure < prev    next >
Text File  |  1996-02-01  |  12KB  |  372 lines

  1. # Configuration script
  2. # Copyright (C) 1994, 1995 Free Software Foundation, Inc.
  3.  
  4. # This program is free software; you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation; either version 2 of the License, or
  7. # (at your option) any later version.
  8. # This program is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. # GNU General Public License for more details.
  12. # You should have received a copy of the GNU General Public License
  13. # along with this program; if not, write to the Free Software
  14. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  15.  
  16. ### WARNING
  17. ### This script (and mpw-config.in fragments) must NOT use any 8-bit chars!
  18. ### WARNING
  19.  
  20. # This is an MPW Shell script that sets everything up for compilation,
  21. # mainly creating directories, and editing copies of files.
  22.  
  23. Set savedir "`Directory`"
  24.  
  25. #Set Echo 1
  26.  
  27. Set ThisScript "{0}"
  28.  
  29. Set srcroot "--------"
  30.  
  31. Set srcdir ":"
  32.  
  33. Set objdir ":"
  34.  
  35. Set prefix "{MPW}":GNUTools:
  36.  
  37. Set exec_prefix ""
  38.  
  39. Set host_alias "m68k-apple-mpw"
  40.  
  41. Set target_alias {host_alias}
  42.  
  43. Set host_cc "mpwc"
  44.  
  45. Set with_gnu_ld 0
  46.  
  47. Set verify 0
  48. Set verifystr ""
  49.  
  50. # Parse arguments.
  51.  
  52. Loop
  53.     Break If {#} == 0
  54.     If "{1}" =~ /--cc/
  55.         Set host_cc "{2}"
  56.         Shift 1
  57.     Else If "{1}" =~ /--enable/
  58.         Set "{2}" 1
  59.         Shift 1
  60.     Else If "{1}" =~ /--exec-prefix/
  61.         Set exec_prefix "{2}"
  62.         Shift 1
  63.     Else If "{1}" =~ /--host/
  64.         Set host_alias "{2}"
  65.         Shift 1
  66.     Else If "{1}" =~ /--prefix/
  67.         Set prefix "{2}"
  68.         Shift 1
  69.     Else If "{1}" =~ /--srcdir/
  70.         Set srcdir "{2}"
  71.         Shift 1
  72.     Else If "{1}" =~ /--srcroot/
  73.         Set srcroot "{2}"
  74.         Shift 1
  75.     Else If "{1}" =~ /--target/
  76.         Set target_alias "{2}"
  77.         Shift 1
  78.     Else If "{1}" =~ /-v/
  79.         Set verify 1
  80.         Set verifystr "-v"
  81.     Else If "{1}" =~ /--with-gnu-ld/
  82.         Set with_gnu_ld 1
  83.     Else
  84.         Echo "{1}" is not a valid argument
  85.         Exit 1
  86.     End If
  87.     Shift 1
  88. End Loop
  89.  
  90. Set Exit 0
  91.  
  92. # Default exec_prefix from prefix.
  93.  
  94. If "{exec_prefix}" == ""
  95.     Set exec_prefix "{prefix}"
  96. End If
  97.  
  98. # Point to the correct set of tools to use with the chosen compiler.
  99.  
  100. If "{host_cc}" =~ /mpwc/
  101.     Set host_alias "m68k-apple-mpw"
  102.     Set cc_name '{CC_MPW_C}'
  103.     Set segment_flag '-s {Default}'
  104.     Set ar_name '{AR_LIB}'
  105.     Set ranlib_name '{RANLIB_NULL}'
  106.     Set cc_ld_name '{CC_LD_LINK}'
  107.     Set prog_ext_name '{PROG_EXT_68K}'
  108.     Set extralibs_name '{EXTRALIBS_C}'
  109.     Set makepef_name '{MAKEPEF_NULL}'
  110.     Set rez_name '{REZ_68K}'
  111. Else If "{host_cc}" =~ /sc68k/
  112.     Set host_alias "m68k-apple-mpw"
  113.     Set cc_name '{CC_SC}'
  114.     Set segment_flag '-s {Default}'
  115.     Set ar_name '{AR_LIB}'
  116.     Set ranlib_name '{RANLIB_NULL}'
  117.     Set cc_ld_name '{CC_LD_LINK}'
  118.     Set prog_ext_name '{PROG_EXT_68K}'
  119.     Set extralibs_name '{EXTRALIBS_C}'
  120.     Set makepef_name '{MAKEPEF_NULL}'
  121.     Set rez_name '{REZ_68K}'
  122. Else If "{host_cc}" =~ /mwc68k/
  123.     Set host_alias "m68k-apple-mpw"
  124.     Set cc_name '{CC_MWC68K}'
  125.     Set segment_flag '-s {Default}'
  126.     Set ar_name '{AR_MWLINK68K}'
  127.     Set ranlib_name '{RANLIB_NULL}'
  128.     Set cc_ld_name '{CC_LD_MWLINK68K}'
  129.     Set prog_ext_name '{PROG_EXT_68K}'
  130.     Set extralibs_name '{EXTRALIBS_MWC68K}'
  131.     Set makepef_name '{MAKEPEF_NULL}'
  132.     Set rez_name '{REZ_68K}'
  133. Else If "{host_cc}" =~ /gcc68k/
  134.     Set host_alias "m68k-apple-mpw"
  135.     Set cc_name '{CC_68K_GCC}'
  136.     Set segment_flag '-s {Default}'
  137.     Set ar_name '{AR_68K_AR}'
  138.     Set ranlib_name '{RANLIB_RANLIB}'
  139.     Set cc_ld_name '{CC_68K_GCC}'
  140.     Set prog_ext_name '{PROG_EXT_68K}'
  141.     Set extralibs_name '{EXTRALIBS_C}'
  142.     Set makepef_name '{MAKEPEF_NULL}'
  143.     Set rez_name '{REZ_68K}'
  144. Else If "{host_cc}" =~ /ppcc/
  145.     Set host_alias "powerpc-apple-mpw"
  146.     Set cc_name '{CC_PPCC}'
  147.     Set segment_flag ''
  148.     Set ar_name '{AR_PPCLINK}'
  149.     Set ranlib_name '{RANLIB_NULL}'
  150.     Set cc_ld_name '{CC_LD_PPCLINK}'
  151.     Set prog_ext_name '{PROG_EXT_XCOFF}'
  152.     Set extralibs_name '{EXTRALIBS_PPC}'
  153.     Set makepef_name '{MAKEPEF_PPC}'
  154.     Set rez_name '{REZ_PPC}'
  155. Else If "{host_cc}" =~ /mrc/
  156.     Set host_alias "powerpc-apple-mpw"
  157.     Set cc_name '{CC_MRC}'
  158.     Set segment_flag ''
  159.     Set ar_name '{AR_PPCLINK}'
  160.     Set ranlib_name '{RANLIB_NULL}'
  161.     Set cc_ld_name '{CC_LD_PPCLINK}'
  162.     Set prog_ext_name '{PROG_EXT_XCOFF}'
  163.     Set extralibs_name '{EXTRALIBS_PPC}'
  164.     Set makepef_name '{MAKEPEF_PPC}'
  165.     Set rez_name '{REZ_PPC}'
  166. Else If "{host_cc}" =~ /scppc/
  167.     Set host_alias "powerpc-apple-mpw"
  168.     Set cc_name '{CC_SC}'
  169.     Set segment_flag ''
  170.     Set ar_name '{AR_PPCLINK}'
  171.     Set ranlib_name '{RANLIB_NULL}'
  172.     Set cc_ld_name '{CC_LD_PPCLINK}'
  173.     Set prog_ext_name '{PROG_EXT_XCOFF}'
  174.     Set extralibs_name '{EXTRALIBS_PPC}'
  175.     Set makepef_name '{MAKEPEF_PPC}'
  176.     Set rez_name '{REZ_PPC}'
  177. Else If "{host_cc}" =~ /mwcppc/
  178.     Set host_alias "powerpc-apple-mpw"
  179.     Set cc_name '{CC_MWCPPC}'
  180.     Set segment_flag ''
  181.     Set ar_name '{AR_MWLINKPPC}'
  182.     Set ranlib_name '{RANLIB_NULL}'
  183.     Set cc_ld_name '{CC_LD_MWLINKPPC}'
  184.     # Misleading, but we don't need a PEF step.
  185.     Set prog_ext_name '{PROG_EXT_68K}'
  186.     Set extralibs_name '{EXTRALIBS_MWCPPC}'
  187.     Set makepef_name '{MAKEPEF_NULL}'
  188.     Set rez_name '{REZ_PPC}'
  189. Else If "{host_cc}" =~ /gccppc/
  190.     Set host_alias "powerpc-apple-mpw"
  191.     Set cc_name '{CC_PPC_GCC}'
  192.     Set segment_flag ''
  193.     Set ar_name '{AR_PPCLINK}'
  194.     Set ranlib_name '{RANLIB_RANLIB}'
  195.     If {with_gnu_ld} == 1
  196.         Set cc_ld_name '{CC_LD_GLD}'
  197.     Else
  198.         Set cc_ld_name '{CC_LD_PPCLINK}'
  199.     End If
  200.     Set prog_ext_name '{PROG_EXT_XCOFF}'
  201.     Set extralibs_name '{EXTRALIBS_PPC}'
  202.     Set makepef_name '{MAKEPEF_PPC}'
  203.     Set rez_name '{REZ_PPC}'
  204. Else
  205.     Echo "{host_cc}" is not a known MPW compiler type
  206. End If
  207.  
  208. # (should interpret aliases if not in canonical form)
  209.  
  210. Set host_canonical "{host_alias}"
  211.  
  212. Set target_canonical "{target_alias}"
  213.  
  214. Set configdirs ""
  215.  
  216. If "{srcroot}" =~ /--------/
  217.     Set srcroot "{srcdir}"
  218. End If
  219. If "`Exists "{srcdir}"`" == ""
  220.     Echo Source directory {srcdir} does not exist!
  221.     Exit 1
  222. End If
  223. If "`Exists "{srcroot}"`" == ""
  224.     Echo Top-level source directory {srcroot} does not exist!
  225.     Exit 1
  226. End If
  227.  
  228. Set target_cpu "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`"
  229. Set target_vendor "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`"
  230. Set target_os "`echo {target_canonical} | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`"
  231.  
  232. # Create a file that is guaranteed to be older than any other here.
  233.  
  234. If "`Exists "{objdir}"_oldest`" == ""
  235.     mpw-touch _oldest
  236. End If
  237.  
  238. # Record this before creating any files, makefiles sometimes mention
  239. # dependencies on config.status.
  240.  
  241. Echo "# This directory was configured as follows:" >config.new
  242. Echo "{ThisScript} --host {host_alias} --target {target_alias} --srcdir {srcdir}  --srcroot {srcroot}  --prefix {prefix} --cc {host_cc}" >>config.new
  243. MoveIfChange config.new config.status
  244.  
  245. If "`Exists "{srcdir}"mpw-config.in`" != ""
  246.     tr-7to8 "{srcdir}"mpw-config.in >"{objdir}"mpw-config.in
  247.     Execute "{objdir}"mpw-config.in
  248. End If
  249.  
  250. # Start Makefile construction by defining all the variables chosen by
  251. # configuration.
  252.  
  253. Echo "# This Makefile produced by mpw-configure.  Changes may get lost!" > "{objdir}"Makefile.tem
  254. Echo "srcroot = " {srcroot}            >> "{objdir}"Makefile.tem
  255. Echo "topsrcdir = " {srcroot}            >> "{objdir}"Makefile.tem
  256. Echo "srcdir = " {srcdir}            >> "{objdir}"Makefile.tem
  257. Echo "mpw_prefix = " {prefix}            >> "{objdir}"Makefile.tem
  258. Echo "mpw_exec_prefix = " {exec_prefix}        >> "{objdir}"Makefile.tem
  259. Echo "host_alias = " {host_alias}        >> "{objdir}"Makefile.tem
  260. Echo "target_alias = " {target_alias}        >> "{objdir}"Makefile.tem
  261. Echo "target_cpu = " {target_cpu}        >> "{objdir}"Makefile.tem
  262. Echo "target_vendor = " {target_vendor}        >> "{objdir}"Makefile.tem
  263. Echo "target_os = " {target_os}            >> "{objdir}"Makefile.tem
  264. Echo "target_canonical = " {target_canonical}    >> "{objdir}"Makefile.tem
  265. Echo "host_makefile_frag = "            >> "{objdir}"Makefile.tem
  266. Echo "target_makefile_frag = "            >> "{objdir}"Makefile.tem
  267. Echo "CC = " {cc_name}                >> "{objdir}"Makefile.tem
  268. Echo "AR = " {ar_name}                >> "{objdir}"Makefile.tem
  269. Echo "RANLIB = " {ranlib_name}            >> "{objdir}"Makefile.tem
  270. Echo "CC_LD = " {cc_ld_name}            >> "{objdir}"Makefile.tem
  271. Echo "PROG_EXT = " {prog_ext_name}        >> "{objdir}"Makefile.tem
  272. Echo "EXTRALIBS = " {extralibs_name}        >> "{objdir}"Makefile.tem
  273. Echo "MAKEPEF = " {makepef_name}        >> "{objdir}"Makefile.tem
  274. Echo "REZ = " {rez_name}            >> "{objdir}"Makefile.tem
  275.  
  276. # Append the master set of definitions for the various compilers.
  277.  
  278. If "`Exists "{srcdir}"config:mpw-mh-mpw`" != ""
  279.     tr-7to8 "{srcdir}"config:mpw-mh-mpw >>"{objdir}"Makefile.tem
  280. Else If "`Exists "{srcroot}"config:mpw-mh-mpw`" != ""
  281.     tr-7to8 "{srcroot}"config:mpw-mh-mpw >>"{objdir}"Makefile.tem
  282. Else
  283.     Echo "can't find a host config file!"
  284.     Exit 0
  285. End If
  286.  
  287. # Append anything produced by the directory's mpw-config.in.
  288.  
  289. If "`Exists "{objdir}"mk.tmp`" != ""
  290.     Catenate "{objdir}"mk.tmp >>"{objdir}"Makefile.tem
  291.     # An mpw-config.in might change so as not to create this
  292.     # anymore, so get rid of it now to be safe.
  293.     Delete -i -y "{objdir}"mk.tmp
  294. End If
  295.  
  296. # If there are sed scripts to edit the Unix Makefile.in, use them; otherwise
  297. # use an mpw-make.in if present.
  298.  
  299. If "`Exists "{srcdir}"mpw-make.sed`" != ""
  300.     If "`Exists "{objdir}"hacked_Makefile.in`" != ""
  301.         Set MakefileIn "{objdir}"hacked_Makefile.in
  302.     Else
  303.         Set MakefileIn "{srcdir}"Makefile.in
  304.     End If
  305.     If "`Exists "{srcroot}"utils:mpw:g-mpw-make.sed`" != ""
  306.         sed -f "{srcroot}"utils:mpw:g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
  307.     Else
  308.         Catenate "{MakefileIn}" >"{objdir}"Makefile.tem1
  309.     End If
  310.     sed -f "{srcdir}"mpw-make.sed "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
  311.     sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' -e 's/^exec_prefix = .*$/exec_prefix = {mpw_exec_prefix}/g' "{objdir}"Makefile.tem2 >"{objdir}"Makefile.tem3
  312.     sed -e "s/@SEGMENT_FLAG@/{segment_flag}/" "{objdir}"Makefile.tem3 >"{objdir}"mpw-make.in
  313.     tr-7to8 "{objdir}"mpw-make.in >>"{objdir}"Makefile.tem
  314.     If "`Exists "{objdir}"mk.sed`" != ""
  315.         sed -f "{objdir}"mk.sed "{objdir}"Makefile.tem >"{objdir}"Makefile.tem2
  316.         Rename -y "{objdir}"Makefile.tem2 "{objdir}"Makefile.tem
  317.     End If
  318.     MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
  319.     Delete -i -y "{objdir}"Makefile.tem[12]
  320.     If {verify} == 1
  321.         Echo Created Makefile in "`Directory`"
  322.     End If
  323. Else If "`Exists "{srcdir}"mpw-make.in`" != ""
  324.     sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' "{srcdir}"mpw-make.in >"{objdir}"Makefile.tem1
  325.     sed -e "s/@SEGMENT_FLAG@/{segment_flag}/" "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
  326.     tr-7to8 "{objdir}"Makefile.tem2 >>"{objdir}"Makefile.tem
  327.     If "`Exists "{objdir}"mk.sed`" != ""
  328.         sed -f "{objdir}"mk.sed "{objdir}"Makefile.tem >"{objdir}"Makefile.tem2
  329.         Rename -y "{objdir}"Makefile.tem2 "{objdir}"Makefile.tem
  330.     End If
  331.     MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
  332.     Delete -i -y "{objdir}"Makefile.tem[12]
  333.     If {verify} == 1
  334.         Echo Created Makefile in "`Directory`"
  335.     End If
  336. End If
  337.  
  338. # Produce a build script if the source is defined.
  339.  
  340. If "`Exists "{srcdir}"mpw-build.in`" != ""
  341.     Echo "Set srcroot " {srcroot} > "{objdir}"mpw-build.tem
  342.     Echo "Set srcdir " {srcdir} >> "{objdir}"mpw-build.tem
  343.     Echo "Set target_canonical " {target_canonical} >> "{objdir}"mpw-build.tem
  344.     Echo "Set prefix " {prefix} >> "{objdir}"mpw-build.tem
  345.     tr-7to8 "{srcdir}"mpw-build.in >>"{objdir}"mpw-build.tem
  346.     MoveIfChange "{objdir}"mpw-build.tem "{objdir}"mpw-build
  347.     If {verify} == 1
  348.         Echo Created mpw-build in "`Directory`"
  349.     End If
  350. End If
  351.  
  352. For subdir In {configdirs}
  353.     Set savedir "`Directory`"
  354.     If "`Exists "{srcdir}{subdir}:"`" == ""
  355.         Echo Strange, no {subdir} in {srcdir}
  356.         Continue
  357.     End If
  358.     If {verify} == 1
  359.         Echo Configuring {subdir}...
  360.     End If
  361.     If "`Exists "{objdir}{subdir}:"`" == ""
  362.         NewFolder "{objdir}{subdir}"
  363.     End If
  364.     SetDirectory "{objdir}{subdir}:"
  365.     "{ThisScript}" --target "{target_canonical}" --srcdir "{srcdir}{subdir}:" --srcroot "{srcroot}" --prefix "{prefix}" --cc "{host_cc}" {verifystr}
  366.     SetDirectory "{savedir}"
  367. End For
  368.  
  369. SetDirectory "{savedir}"
  370.