Skip to content

Commit

Permalink
Start working on the new system. launcher, sbcl, asdf, quicklisp, hav…
Browse files Browse the repository at this point in the history
…e been ported. Git and emacs still need to be done.
  • Loading branch information
Shinmera committed Feb 5, 2017
1 parent 63acd37 commit 0b5eb2c
Show file tree
Hide file tree
Showing 28 changed files with 62 additions and 660 deletions.
14 changes: 4 additions & 10 deletions .gitignore
Expand Up @@ -5,15 +5,9 @@ build/*/
build/.portacle-finished-fragments
package/
## Build results
aspell/*/*/
aspell/share/
emacs/*/*/
emacs/config/
sbcl/*/*/
git/*/*/
hunspell/*/*/
asdf/*
quicklisp/
usr/
lin/
win/
mac/
all/
## Other stuff
projects/*
1 change: 1 addition & 0 deletions .portacle_root
@@ -0,0 +1 @@
.
2 changes: 1 addition & 1 deletion Portacle.app/Contents/MacOS/portacle.sh
Expand Up @@ -6,5 +6,5 @@ function mreadlink() {
SCRIPT=$(dirname $(mreadlink "$0"))
export ROOT=$(mreadlink "$SCRIPT/../../../")/

"$ROOT/emacs/mac/emacs.sh"
"$ROOT/mac/bin/portacle"

12 changes: 4 additions & 8 deletions build/asdf.sh
Expand Up @@ -7,25 +7,21 @@ readonly REPOSITORY=https://gitlab.common-lisp.net/asdf/asdf.git

readonly PROGRAM=asdf
source common.sh
INSTALL_TARGET=$PORTACLE_DIR/$PROGRAM

function build() {
cd "$SOURCE_DIR"
make
cd "$SOURCE_DIR/build/"
cat >compile.lisp <<EOF
(cl:compile-file "asdf.lisp" :output-file "asdf.fasl")
(sb-ext:exit)
(sb-ext:exit :code 0)
EOF
case "$PLATFORM" in
win) winroot=$({ cd "$SCRIPT_DIR/.." && pwd -W; } | sed 's|/|\\|g')
cmd /c "$winroot\\sbcl\\win\\sbcl.bat --script compile.lisp" ;;
*) $SCRIPT_DIR/../sbcl/$PLATFORM/sbcl.sh --script compile.lisp;;
esac
"$SHARED_BIN_DIR/sbcl" --script compile.lisp \
|| eexit "Failed to compile ASDF."
}

function install() {
ensure-installed "$INSTALL_TARGET" "$SOURCE_DIR/build/asdf.lisp" "$SOURCE_DIR/build/asdf.fasl" \
ensure-installed "$INSTALL_DIR" "$SOURCE_DIR/build/asdf.lisp" "$SOURCE_DIR/build/asdf.fasl" \
|| eexit "Failed to copy ASDF sources."
}

Expand Down
1 change: 1 addition & 0 deletions build/build.sh
Expand Up @@ -56,6 +56,7 @@ function package() {
function upgrade() {
download \
&& global \
&& launcher \
&& sbcl \
&& asdf \
&& quicklisp \
Expand Down
12 changes: 6 additions & 6 deletions build/common.sh
Expand Up @@ -27,11 +27,11 @@ function mreadlink() {
SCRIPT_DIR=${SCRIPT_DIR:-$(mreadlink $(dirname $0))}
SOURCE_DIR=${SOURCE_DIR:-$SCRIPT_DIR/$PROGRAM/}
PORTACLE_DIR=${PORTACLE_DIR:-$(mreadlink $SCRIPT_DIR/../)}
SHARED_DIR=${SHARED_DIR:-$PORTACLE_DIR/usr}
SHARED_BIN_DIR=${SHARED_BIN_DIR:-$SHARED_DIR/$PLATFORM/bin}
SHARED_LIB_DIR=${SHARED_LIB_DIR:-$SHARED_DIR/$PLATFORM/lib}
SHARED_DIR=${SHARED_DIR:-$PORTACLE_DIR/$PLATFORM}
SHARED_BIN_DIR=${SHARED_BIN_DIR:-$SHARED_DIR/bin}
SHARED_LIB_DIR=${SHARED_LIB_DIR:-$SHARED_DIR/lib}
INSTALL_DIR=${INSTALL_DIR:-$PORTACLE_DIR/$PLATFORM/${PROGRAM}/}
FRAGMENT_FILE=${FRAGMENT_FILE:-$SCRIPT_DIR/.portacle-finished-fragments}
INSTALL_TARGET=${INSTALL_TARGET:-$PORTACLE_DIR/$PROGRAM/$PLATFORM/}
_DEFAULT_TARGETS=(download prepare build install)
DEFAULT_TARGETS=("${DEFAULT_TARGETS[@]:-${_DEFAULT_TARGETS[@]}}")
TARGETS=("${@:-${DEFAULT_TARGETS[@]}}")
Expand Down Expand Up @@ -187,7 +187,7 @@ function info() {
Downloading from: ${REPOSITORY}
Using tag: ${TAG}
Building in: ${SOURCE_DIR}
Installing into: ${INSTALL_TARGET}
Installing into: ${INSTALL_DIR}
Using threads: ${MAXCPUS}
Building targets: ${TARGETS[@]}
"
Expand Down Expand Up @@ -240,7 +240,7 @@ function clean() {
}

function clean-installed() {
cd "$INSTALL_TARGET"
cd "$INSTALL_DIR"
rm -R ./*/
}

Expand Down
9 changes: 4 additions & 5 deletions build/emacs.sh
Expand Up @@ -18,7 +18,6 @@ readonly CONFIGURE_OPTIONS=(--without-jpeg

readonly PROGRAM=emacs
source common.sh
readonly SHARE_TARGET=$SCRIPT_DIR/../$PROGRAM/share/

function prepare() {
cd "$SOURCE_DIR"
Expand All @@ -30,9 +29,9 @@ function prepare() {
./autogen.sh \
|| eexit "Failed to generate configure. Maybe some dependencies are missing?"
case "$PLATFORM" in
mac) ./configure --prefix="$INSTALL_TARGET" --with-ns --disable-ns-self-contained "${CONFIGURE_OPTIONS[@]}" \
mac) ./configure --prefix="$INSTALL_DIR" --with-ns --disable-ns-self-contained "${CONFIGURE_OPTIONS[@]}" \
|| eexit "Configure failed. Maybe some dependencies are missing?" ;;
*) ./configure --prefix="$INSTALL_TARGET" "${CONFIGURE_OPTIONS[@]}" \
*) ./configure --prefix="$INSTALL_DIR" "${CONFIGURE_OPTIONS[@]}" \
|| eexit "Configure failed. Maybe some dependencies are missing?" ;;
esac
}
Expand All @@ -45,11 +44,11 @@ function build() {

function install() {
cd "$SOURCE_DIR"
make install datadir="$SHARE_TARGET" \
make install datadir="$INSTALL_DIR/share/" \
|| eexit "The install failed. Please check the output for error messages."

status 2 "Copying dependencies"
ensure-dependencies $(find-binaries "$INSTALL_TARGET/")
ensure-dependencies $(find-binaries "$INSTALL_DIR/")
}

main
25 changes: 0 additions & 25 deletions build/global.sh
Expand Up @@ -20,34 +20,9 @@ function download() {
curl -o "$SOURCE_DIR/ca-bundle.crt" "$SSL_CA"
}

function build() {
mkdir -p "$SOURCE_DIR"
case "$PLATFORM" in
lin)
gcc -o "$SOURCE_DIR/ld-wrap.so" -Wall -std=c99 -fPIC -shared -ldl -Wl,-init,init "$SCRIPT_DIR/src/ld-wrap.c" \
|| eexit "Failed to build ld-wrap.so"
cp -fuv "/lib64/ld-linux-x86-64.so.2" "$SOURCE_DIR/ld-linux.so" \
|| eexit "Failed to copy ld-linux.so"
;;
win)
gcc -o "$SOURCE_DIR/fontreg.exe" -Wall -std=c99 -mwindows "$SCRIPT_DIR/src/fontreg.c" \
|| eexit "Failed to build fontreg.exe"
windres "$SCRIPT_DIR/src/portacle.rc" -O coff -o "$SOURCE_DIR/portacle.res" \
|| eexit "Failed to compile resource file"
gcc -o "$SOURCE_DIR/portacle.exe" "$SCRIPT_DIR/src/portacle.c" "$SOURCE_DIR/portacle.res" -lshlwapi \
|| eexit "FAiled to build portacle.exe"
esac
}

function install() {
mkdir -p "$SHARED_LIB_DIR/"
mkdir -p "$SHARED_BIN_DIR/"

case "$PLATFORM" in
lin) ensure-installed "$SHARED_LIB_DIR/" "$SOURCE_DIR/ld-wrap.so" "$SOURCE_DIR/ld-linux.so" ;;
win) ensure-installed "$SHARED_BIN_DIR/" "$SOURCE_DIR/fontreg.exe"
ensure-installed "$PORTACLE_DIR/" "$SOURCE_DIR/portacle.exe" ;;
esac

mkdir -p "$SHARED_DIR/ssl"
ensure-installed "$SHARED_DIR/ssl/" "$SOURCE_DIR/ca-bundle.crt"
Expand Down
29 changes: 29 additions & 0 deletions build/launcher.sh
@@ -0,0 +1,29 @@
#!/bin/bash

readonly TAG=
readonly REPOSITORY=https://github.com/shinmera/portacle-launcher.git

###

readonly PROGRAM=launcher
source common.sh

function build() {
cd "$SOURCE_DIR"
make $PLATFORM
}

function install() {
cd "$SOURCE_DIR"
mkdir -p "$INSTALL_DIR"
case "$PLATFORM" in
win) cp "portacle.exe" "$INSTALL_DIR/portacle";;
*) cp "portacle" "$INSTALL_DIR/portacle" ;;
esac
cd "$SHARED_BIN_DIR"
ln -rs "../$PROGRAM/portacle" "sbcl"
ln -rs "../$PROGRAM/portacle" "git"
ln -rs "../$PROGRAM/portacle" "emacs"
}

main
17 changes: 6 additions & 11 deletions build/quicklisp.sh
Expand Up @@ -7,24 +7,19 @@ readonly REPOSITORY=https://github.com/quicklisp/quicklisp-client.git

readonly PROGRAM=quicklisp
source common.sh
INSTALL_TARGET=$PORTACLE_DIR/$PROGRAM

case "$PLATFORM" in
win) readonly SBCL="$PORTACLE_DIR/sbcl/win/sbcl.bat" ;;
*) readonly SBCL="$PORTACLE_DIR/sbcl/$PLATFORM/sbcl.sh" ;;
esac
INSTALL_DIR=$PORTACLE_DIR/all/$PROGRAM

function build() {
"$SBCL" --script "$SOURCE_DIR/setup.lisp" \
"SHARED_BIN_DIR/sbcl" --script "$SOURCE_DIR/setup.lisp" \
|| eexit "Failed to set up quicklisp first-time init."
}

function install() {
mkdir -p "$INSTALL_TARGET" \
|| eexit "Failed to create $INSTALL_TARGET"
cp -Rf "$SOURCE_DIR/." "$INSTALL_TARGET" \
mkdir -p "$INSTALL_DIR" \
|| eexit "Failed to create $INSTALL_DIR"
cp -Rf "$SOURCE_DIR/." "$INSTALL_DIR" \
|| eexit "Failed to copy Quicklisp."
rm -rf "$INSTALL_TARGET/.git"
rm -rf "$INSTALL_DIR/.git"
}

main
10 changes: 5 additions & 5 deletions build/sbcl.sh
Expand Up @@ -9,7 +9,7 @@ readonly ENABLED_FEATURES=":sb-thread :sb-safepoint :sb-thruption :sb-wtimer :sb

readonly PROGRAM=sbcl
source common.sh
readonly INSTALL_SOURCES=$SCRIPT_DIR/../$PROGRAM/sources/
readonly INSTALL_SOURCES=$INSTALL_DIR/share/src/

function prepare() {
cd "$SOURCE_DIR"
Expand Down Expand Up @@ -47,10 +47,10 @@ function build() {
}

function install() {
cd $SOURCE_DIR
cd "$SOURCE_DIR"
unset SBCL_HOME
mkdir -p "$INSTALL_TARGET" &>/dev/null
INSTALL_ROOT="$INSTALL_TARGET" sh install.sh \
mkdir -p "$INSTALL_DIR" &>/dev/null
INSTALL_ROOT="$INSTALL_DIR" sh install.sh \
|| eexit "Failed to install SBCL."
mkdir -p "$INSTALL_SOURCES" &>/dev/null
## Can't use -t because of apple.
Expand All @@ -68,7 +68,7 @@ function install() {
-name "a.out" -delete

status 2 "Copying dependencies"
ensure-dependencies $(find-binaries "$INSTALL_TARGET/")
ensure-dependencies $(find-binaries "$INSTALL_DIR/")
}

main
31 changes: 0 additions & 31 deletions build/src/fontreg.c

This file was deleted.

0 comments on commit 0b5eb2c

Please sign in to comment.