Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
cmucl
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
25
Issues
25
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cmucl
cmucl
Commits
7c53c93c
Commit
7c53c93c
authored
Oct 07, 2011
by
Alex Goncharov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. Add .gitignore. 2. Rewrite tools/create-target.sh
parent
155ba1a1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
88 additions
and
128 deletions
+88
-128
.gitignore
.gitignore
+1
-0
tools/create-target.sh
tools/create-target.sh
+87
-128
No files found.
.gitignore
0 → 100644
View file @
7c53c93c
contrib/asdf/asdf.*f
tools/create-target.sh
View file @
7c53c93c
#!/bin/sh
LISP_VARIANT
=
MOTIF_VARIANT
=
TARGET_DIR
=
quit
()
{
echo
"
$@
"
>
&2
;
exit
1
;
}
usage
()
{
echo
"Usage:
`
basename
$0
`
target-dir [lisp-variant [motif-variant
]]"
echo
"Usage:
`
basename
$0
`
TARGET-DIR [LISP-VARIANT [MOTIF-VARIANT
]]"
echo
""
echo
"Creates a directory structure in TARGET-DIR for use in compiling"
echo
"CMUCL. If the lisp-variant is not given, uname is used to select"
echo
"a version, if possible. If motif-variant is not given, one is"
echo
"determined from the lisp-variant."
echo
"Creates a directory structure in TARGET-DIR for use in building CMUCL."
echo
"A simple logic is used to find the optional -VARIANT parameters."
echo
""
# List possible values for lisp-variant and motif-variant
echo
"Possible lisp-variants:"
(
cd
src/lisp/
;
ls
-1
Config.
*
)
|
sed
's;^Config[.];;g'
|
\
pr
-3at
-o
8
echo
"Possible Motif-variants:"
(
cd
src/motif/server/
;
ls
-1
Config.
*
)
|
sed
's;^Config[.];;g'
|
\
pr
-3at
-o
8
exit
1
echo
"Possible LISP-VARIANTs (don't trust what you see):"
(
cd
src/lisp/
&&
ls
-1
Config.
*
)
|
sed
's;^Config[.];;g'
|
pr
-3at
-o
8
||
quit
"Can't list lisp-variants"
echo
"Possible MOTIF-VARIANTs (don't trust what you see):"
(
cd
src/motif/server/
&&
ls
-1
Config.
*
)
|
sed
's;^Config[.];;g'
|
pr
-3at
-o
8
||
quit
"Can't list lisp-variants"
exit
2
}
if
[
$#
=
1
]
;
then
# Only target directory given. Try to deduce the lisp-variant
TARGET_DIR
=
"
$1
"
case
`
uname
-s
`
in
SunOS
)
case
`
uname
-m
`
in
i86pc
)
LISP_VARIANT
=
x86_solaris_sunc
;;
sun
*
)
LISP_VARIANT
=
sparc_gcc
;;
esac
;;
Linux
)
LISP_VARIANT
=
x86_linux
;;
Darwin
)
case
`
uname
-m
`
in
ppc
)
LISP_VARIANT
=
ppc_darwin
;;
i386
)
LISP_VARIANT
=
x86_darwin
;;
bld_dir
=
$1
lisp_variant
=
$2
motif_variant
=
$3
exec
2>&1
case
$bld_dir
in
build-
*
)
:
;;
*
)
usage
;;
esac
uname_s
=
`
uname
-s
`
uname_m
=
`
uname
-m
2>/dev/null
`
[
-n
"
$lisp_variant
"
]
||
{
case
$uname_s
in
Linux
)
lisp_variant
=
x86_linux
;;
FreeBSD
)
lisp_variant
=
x86_freebsd
;;
SunOS
)
case
$uname_m
in
i86pc
)
lisp_variant
=
x86_solaris_sunc
;;
sun
*
)
lisp_variant
=
sparc_gcc
;;
esac
;;
Darwin
)
case
$uname_m
in
ppc
)
lisp_variant
=
ppc_darwin
;;
i386
)
lisp_variant
=
x86_darwin
;;
esac
;;
FreeBSD|freebsd
)
LISP_VARIANT
=
x86_freebsd
;;
# Please fill in some other common systems
*
)
echo
"Sorry, please specify the desired Lisp variant."
exit
1
;;
*
)
quit
"Unsupported OS:
$uname_s
"
;;
esac
elif
[
$#
=
2
]
;
then
# Target directory and lisp-variant given
TARGET_DIR
=
"
$1
"
LISP_VARIANT
=
"
$2
"
elif
[
$#
=
3
]
;
then
# Target directory, lisp-variant, and motif variant given
TARGET_DIR
=
"
$1
"
LISP_VARIANT
=
"
$2
"
MOTIF_VARIANT
=
"
$3
"
else
usage
fi
[
-d
$1
]
&&
echo
"Error: Directory
$1
exists already!"
&&
exit
2
TARGET
=
"
`
echo
$TARGET_DIR
|
sed
's:/*$::'
`
"
# Make sure the given variants exist
if
[
!
-f
src/lisp/Config.
$LISP_VARIANT
]
;
then
echo
"No such lisp-variant could be found: Config.
$LISP_VARIANT
"
exit
1
fi
}
[
-n
"
$lisp_variant
"
]
||
quit
"Failed to determine lisp_variant"
[
-f
src/lisp/Config.
$lisp_variant
]
||
quit
"Config.
$lisp_variant
not found"
case
$lisp_variant
in
*
linux
*
)
lvshort
=
linux
;;
*
freebsd
*
)
lvshort
=
freebsd
;;
*
solaris
*
)
lvshort
=
solaris
;;
*
)
lvshort
=
unknown
;;
esac
# From the given variant, try to derive a motif variant
if
[
"
$MOTIF_VARIANT
"
=
""
]
;
then
case
$LISP_VARIANT
in
alpha_linux
)
MOTIF_VARIANT
=
alpha_linux
;;
alpha_osf1
)
MOTIF_VARIANT
=
alpha_osf1
;;
x86_freebsd|FreeBSD
*
|
freebsd
*
)
MOTIF_VARIANT
=
FreeBSD
;;
NetBSD
*
)
MOTIF_VARIANT
=
NetBSD
;;
OpenBSD
*
)
MOTIF_VARIANT
=
OpenBSD
;;
*
_darwin
)
MOTIF_VARIANT
=
Darwin
;;
sun4_solaris_gcc|sparc_gcc
)
MOTIF_VARIANT
=
solaris
;;
sun4_solaris_sunc|sparc_sunc|x86_solaris_sunc
)
MOTIF_VARIANT
=
solaris_sunc
;;
sun4c
*
)
MOTIF_VARIANT
=
sun4c_411
;;
hp700
*
)
MOTIF_VARIANT
=
hpux_cc
;;
pmax_mach
)
MOTIF_VARIANT
=
pmax_mach
;;
sgi
*
)
MOTIF_VARIANT
=
irix
;;
x86_linux|linux
*
)
MOTIF_VARIANT
=
x86
;;
esac
elif
[
!
-f
src/motif/server/Config.
$MOTIF_VARIANT
]
;
then
echo
"No such motif-variant could be found: Config.
$MOTIF_VARIANT
"
exit
1
fi
# Beats me why we care about Motif today but let it be, other than on FreeBSD,
# where the config file is wrong anyway. (agoncharov, 2011-10-07)
case
$uname_s
in
FreeBSD
)
:
;;
# Free
*
)
# Enjoy
[
-n
"
$motif_variant
"
]
||
{
case
$lisp_variant
in
NetBSD
*
)
motif_variant
=
NetBSD
;;
OpenBSD
*
)
motif_variant
=
OpenBSD
;;
*
_darwin
)
motif_variant
=
Darwin
;;
sun4_solaris_gcc|sparc_gcc
)
motif_variant
=
solaris
;;
sun4_solaris_sunc|sparc_sunc|x86_solaris_sunc
)
motif_variant
=
solaris_sunc
;;
sun4c
*
)
motif_variant
=
sun4c_411
;;
hp700
*
)
motif_variant
=
hpux_cc
;;
pmax_mach
)
motif_variant
=
pmax_mach
;;
sgi
*
)
motif_variant
=
irix
;;
x86_linux|linux
*
)
motif_variant
=
x86
;;
esac
}
[
-f
src/motif/server/Config.
$motif_variant
]
||
quit
"No such motif-variant could be found: Config.
$motif_variant
"
;;
esac
# Tell user what's we've configured
echo
"Lisp =
$LISP_VARIANT
"
echo
"Motif =
$MOTIF_VARIANT
"
echo
"bld_dir=
$bld_dir
lisp_variant=
$lisp_variant
${
motif_variant
:+motif_variant
=
$motif_variant
}
"
# Create a directory tree that mirrors the source directory tree
find src
-name
'CVS'
-prune
-o
-type
d
-print
\
|
sed
"s:^src:
$TARGET
:g"
| xargs
mkdir
[
-e
"
$bld_dir
"
]
&&
quit
"delete this:
`
ls
-ld
$bld_dir
`
"
mkdir
-p
"
$bld_dir
"
(
cd
src
&&
find
.
-name
.git
-prune
-o
-type
d
-print
)
|
(
cd
$bld_dir
&&
xargs
mkdir
-p
)
||
quit
"Can't create target directories"
top_dir
=
$PWD
cd
$bld_dir
/lisp
||
quit
"Can't cd
$bld_dir
/lisp"
# Link Makefile and Config files
(
cd
$TARGET
/lisp
ln
-s
../../src/lisp/GNUmakefile ../../src/lisp/Config.
$LISP_VARIANT
../../src/lisp/Config.
*
_common
.
ln
-s
Config.
$LISP_VARIANT
Config
ln
-s
../../src/lisp/GNUmakefile ../../src/lisp/Config.
$lisp_variant
../../src/lisp/Config.
*
_common
.
ln
-s
Config.
$lisp_variant
Config
[
-n
"
$motif_variant
"
]
&&
(
cd
motif/server
||
quit
"Can't cd motif/server"
# We will still continue in the outer shell
ln
-s
../../../src/motif/server/GNUmakefile ./Makefile
ln
-s
../../../src/motif/server/Config.
$motif_variant
./Config
)
# Create empty initial map file
echo
'Map file for lisp version 0'
>
$TARGET
/lisp/lisp.nm
# Create dummy internals.h so we get warned to recompile
echo
'#error You need to run genesis (via build-world.sh) before compiling the startup code!'
>
$TARGET
/lisp/internals.h
SETENV
=
src/tools/setenv-scripts
# Create sample setenv.lisp file
cat
$SETENV
/base-features.lisp
>
$TARGET
/setenv.lisp
# Put in some platform specific items
case
$LISP_VARIANT
in
*
linux
*
)
gcname
=
":gencgc"
sed
"s;@@gcname@@;
$gcname
;"
$SETENV
/linux-features.lisp
>>
$TARGET
/setenv.lisp
;;
*
OpenBSD
*
)
case
$LISP_VARIANT
in
*
_gencgc
*
)
gcname
=
":gencgc"
;;
*
)
gcname
=
":cgc"
;;
esac
sed
"s;@@gcname@@;
$gcname
;"
$SETENV
/openbsd-features.lisp
>>
$TARGET
/setenv.lisp
;;
*
FreeBSD
*
|
*
freebsd
*
)
gcname
=
":gencgc"
sed
"s;@@gcname@@;
$gcname
;"
$SETENV
/freebsd-features.lisp
>>
$TARGET
/setenv.lisp
;;
*
solaris
*
)
cat
$SETENV
/solaris-features.lisp
>>
$TARGET
/setenv.lisp
;;
*
)
sed
"s;@@LISP@@;
$LISP_VARIANT
;"
$SETENV
/unknown.lisp
>>
$TARGET
/setenv.lisp
;;
esac
# Do Motif setup
if
[
"
$MOTIF_VARIANT
"
!=
""
]
then
(
cd
$TARGET
/motif/server
;
ln
-s
../../../src/motif/server/GNUmakefile ./Makefile
)
(
cd
$TARGET
/motif/server
;
ln
-s
../../../src/motif/server/Config.
$MOTIF_VARIANT
./Config
)
fi
echo
'Map file for lisp version 0'
>
lisp.nm
# Empty initial map file
echo
'#error You need to run genesis (via build-world.sh) before compiling the startup code!'
>
internals.h
(
setenv_dir
=
$top_dir
/src/tools/setenv-scripts
cat
$setenv_dir
/base-features.lisp
case
$lvshort
in
linux|freebsd
)
gcname
=
":gencgc"
;
sed
"s;@@gcname@@;
$gcname
;"
$setenv_dir
/
$lvshort
-features
.lisp
>>
setenv.lisp
;;
solaris
)
cat
$setenv_dir
/solaris-features.lisp
;;
*
)
sed
"s;@@LISP@@;
$lisp_variant
;"
$setenv_dir
/unknown.lisp
;;
esac
)
>
setenv.lisp
||
quit
"Failed create setenv.lisp"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment