mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 18:04:07 +00:00
Upload
Digital Research
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Script to optionally download, modify and build the 'alink' v1.6 linker
|
||||
# under Unix. The web page for the linker is here:
|
||||
#
|
||||
# http://alink.sourceforge.net/
|
||||
#
|
||||
# usage:
|
||||
# $build_alink build_directory package_directory url
|
||||
#
|
||||
# build_directory:
|
||||
# A directory to extract the package files to and build. The directory will
|
||||
# be created if it does not already exist. (Note: files are not in a
|
||||
# directory when unzipped)
|
||||
#
|
||||
# package_directory:
|
||||
# The location of the package. This location if it does exist will be
|
||||
# created and a package downloaded from the Internet if the 3rd parameter
|
||||
# url is specified.
|
||||
#
|
||||
# url:
|
||||
# Specify an optional url download location. If not specified then the
|
||||
# package file already in the package_directory will be used. If specified
|
||||
# then downloading only occurs if the required package is not already in
|
||||
# package_directory.
|
||||
#
|
||||
# SJK 14 Feb 09
|
||||
|
||||
APP_DIR=$1
|
||||
URL=$3
|
||||
|
||||
# Check that a build directory location has been specified
|
||||
if [ "$APP_DIR" = "" ]; then
|
||||
echo "$0 : A build directory must be specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check that a package directory location has been specified
|
||||
if [ "$2" = "" ]; then
|
||||
echo "$0 : A package directory must be specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if we have a build directory and exit if the 'alink' binary file
|
||||
# already exists. If not create the directory, optionally download, modify
|
||||
# and build the package.
|
||||
if (test -d $APP_DIR); then
|
||||
if (test -f $APP_DIR/alink); then
|
||||
echo "'alink' binary exists. To rebuild remove it or the build directory."
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
mkdir $APP_DIR
|
||||
fi
|
||||
|
||||
# Create the package directory if downloading and does not already exist
|
||||
if (test ! -d $2 ); then
|
||||
if [ "$URL" != "" ]; then
|
||||
mkdir $2
|
||||
else
|
||||
echo "$0 : Package directory not found"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Get absolute paths to directories
|
||||
CWD=$PWD
|
||||
cd $2
|
||||
PKGDIR=$PWD
|
||||
cd $CWD
|
||||
|
||||
# Download the package if we don't already have it
|
||||
if (test ! -f $PKGDIR/alinksrc.zip); then
|
||||
if [ "$URL" != "" ]; then
|
||||
cd $PKGDIR
|
||||
echo "$0 : Downloading: $URL"
|
||||
wget $URL
|
||||
cd $CWD
|
||||
else
|
||||
echo "$0 : Package file does not exist"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Change to the build directory
|
||||
cd $APP_DIR
|
||||
|
||||
# Extract all files (with overwrite) forcing names to lower case
|
||||
unzip -LL -o $PKGDIR/alinksrc.zip
|
||||
|
||||
# Check this is version 1.6 of the package
|
||||
TESTSTR=`grep 'ALINK v1.6 (C)' alink.c`
|
||||
if [ "$TESTSTR" = "" ]; then
|
||||
echo "$0 : Error - this script is only intended for v1.6 of ALINK"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create a new Makefile for Unix (note escaped dollar characters)
|
||||
rm Makefile_unix
|
||||
cat >> Makefile_unix << EOT
|
||||
%.o: %.c
|
||||
gcc -c -o \$@ $<
|
||||
|
||||
all: alink
|
||||
|
||||
alink.o combine.o util.o output.o objload.o coff.o cofflib.o : alink.h
|
||||
|
||||
alink: alink.o combine.o util.o output.o objload.o coff.o cofflib.o
|
||||
gcc -o \$@ $^
|
||||
EOT
|
||||
|
||||
# Append this to the alink.h file
|
||||
cat >> alink.h << EOT
|
||||
/* Added SJK 14 Feb 09 */
|
||||
#ifdef __unix__
|
||||
#ifndef alink_mod
|
||||
#define alink_mod
|
||||
#define stricmp strcasecmp
|
||||
#define strupr xstrupr
|
||||
/* strdup got redefined! put this back to strdup */
|
||||
#define _strdup strdup
|
||||
char *xstrupr (char *a);
|
||||
#endif
|
||||
#endif
|
||||
EOT
|
||||
|
||||
# Append this to the util.c file
|
||||
cat >> util.c << EOT
|
||||
/* Added SJK 14 Feb 09 */
|
||||
#ifdef __unix__
|
||||
char *xstrupr (char *a)
|
||||
{
|
||||
char *ret = a;
|
||||
|
||||
while (*a)
|
||||
{
|
||||
if (islower(*a))
|
||||
*a = toupper(*a);
|
||||
++a;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
EOT
|
||||
|
||||
# Compile the program
|
||||
make -f Makefile_unix
|
||||
Reference in New Issue
Block a user