aboutsummaryrefslogtreecommitdiff
path: root/make/lib
diff options
context:
space:
mode:
Diffstat (limited to 'make/lib')
-rw-r--r--make/lib/compile-c.sh73
-rw-r--r--make/lib/default.nix69
-rw-r--r--make/lib/find-includes.pl21
-rw-r--r--make/lib/link.sh21
-rw-r--r--make/lib/make-library.sh28
5 files changed, 0 insertions, 212 deletions
diff --git a/make/lib/compile-c.sh b/make/lib/compile-c.sh
deleted file mode 100644
index 3558dd89e..000000000
--- a/make/lib/compile-c.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-. $stdenv/setup
-
-mainName=$(basename $main | cut -c34-)
-
-echo "compiling \`$mainName'..."
-
-# Turn $localIncludes into an array.
-localIncludes=($localIncludes)
-
-# Determine how many `..' levels appear in the header file references.
-# E.g., if there is some reference `../../foo.h', then we have to
-# insert two extra levels in the directory structure, so that `a.c' is
-# stored at `dotdot/dotdot/a.c', and a reference from it to
-# `../../foo.h' resolves to `dotdot/dotdot/../../foo.h' == `foo.h'.
-n=0
-maxDepth=0
-for ((n = 0; n < ${#localIncludes[*]}; n += 2)); do
- target=${localIncludes[$((n + 1))]}
-
- # Split the target name into path components using some IFS magic.
- savedIFS="$IFS"
- IFS=/
- components=($target)
- depth=0
- for ((m = 0; m < ${#components[*]}; m++)); do
- c=${components[m]}
- if test "$c" = ".."; then
- depth=$((depth + 1))
- fi
- done
- IFS="$savedIFS"
-
- if test $depth -gt $maxDepth; then
- maxDepth=$depth;
- fi
-done
-
-# Create the extra levels in the directory hierarchy.
-prefix=
-for ((n = 0; n < maxDepth; n++)); do
- prefix="dotdot/$prefix"
-done
-
-# Create symlinks to the header files.
-for ((n = 0; n < ${#localIncludes[*]}; n += 2)); do
- source=${localIncludes[n]}
- target=${localIncludes[$((n + 1))]}
-
- # Create missing directories. We use IFS magic to split the path
- # into path components.
- savedIFS="$IFS"
- IFS=/
- components=($prefix$target)
- fullPath=(.)
- for ((m = 0; m < ${#components[*]} - 1; m++)); do
- fullPath=("${fullPath[@]}" ${components[m]})
- if ! test -d "${fullPath[*]}"; then
- mkdir "${fullPath[*]}"
- fi
- done
- IFS="$savedIFS"
-
- ln -sf $source $prefix$target
-done
-
-# Create a symlink to the main file.
-if ! test "$(readlink $prefix$mainName)" = $main; then
- ln -s $main $prefix$mainName
-fi
-
-mkdir $out
-test "$prefix" && cd $prefix
-gcc -Wall $cFlags -c $mainName -o $out/$mainName.o
diff --git a/make/lib/default.nix b/make/lib/default.nix
deleted file mode 100644
index 81440ca6a..000000000
--- a/make/lib/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-rec {
-
- # Should point at your Nixpkgs installation.
- pkgPath = ./pkgs;
-
- pkgs = import (pkgPath + /system/all-packages.nix) {};
-
- stdenv = pkgs.stdenv;
-
-
- compileC =
- { main
- , localIncludes ? "auto"
- , localIncludePath ? []
- , cFlags ? ""
- , sharedLib ? false
- }:
- stdenv.mkDerivation {
- name = "compile-c";
- builder = ./compile-c.sh;
-
- localIncludes =
- if localIncludes == "auto" then
- dependencyClosure {
- scanner = main:
- import (findIncludes {
- inherit main;
- });
- searchPath = localIncludePath;
- startSet = [main];
- }
- else
- localIncludes;
-
- inherit main;
-
- cFlags = [
- cFlags
- (if sharedLib then ["-fpic"] else [])
- (map (p: "-I" + (relativise (dirOf main) p)) localIncludePath)
- ];
- };
-
-
- findIncludes = {main}: stdenv.mkDerivation {
- name = "find-includes";
- realBuilder = pkgs.perl ~ "bin/perl";
- args = [ ./find-includes.pl ];
- inherit main;
- };
-
-
- link = {objects, programName ? "program", libraries ? []}: stdenv.mkDerivation {
- name = "link";
- builder = ./link.sh;
- inherit objects programName libraries;
- };
-
-
- makeLibrary = {objects, libraryName ? [], sharedLib ? false}:
- # assert sharedLib -> fold (obj: x: assert obj.sharedLib && x) false objects
- stdenv.mkDerivation {
- name = "library";
- builder = ./make-library.sh;
- inherit objects libraryName sharedLib;
- };
-
-
-}
diff --git a/make/lib/find-includes.pl b/make/lib/find-includes.pl
deleted file mode 100644
index 43406825a..000000000
--- a/make/lib/find-includes.pl
+++ /dev/null
@@ -1,21 +0,0 @@
-use strict;
-
-my $root = $ENV{"main"};
-my $out = $ENV{"out"};
-
-open OUT, ">$out" or die "$!";
-print OUT "[\n";
-
-open IN, "<$root" or die "$!";
-while (<IN>) {
- if (/^\#include\s+\"(.*)\"/) {
- print OUT "\"$1\"\n";
- }
- if (/^\#include\s+\<(.*)\>/) {
- print OUT "\"$1\"\n";
- }
-}
-close IN;
-
-print OUT "]\n";
-close OUT;
diff --git a/make/lib/link.sh b/make/lib/link.sh
deleted file mode 100644
index a48f750f4..000000000
--- a/make/lib/link.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-. $stdenv/setup
-
-shopt -s nullglob
-
-objs=
-for i in $objects; do
- obj=$(echo $i/*.o)
- objs="$objs $obj"
-done
-
-libs=
-for i in $libraries; do
- lib=$(echo $i/*.a; echo $i/*.so)
- name=$(echo $(basename $lib) | sed -e 's/^lib//' -e 's/.a$//' -e 's/.so$//')
- libs="$libs -L$(dirname $lib) -l$name"
-done
-
-echo "linking object files into \`$programName'..."
-
-mkdir $out
-gcc -o $out/$programName $objs $libs
diff --git a/make/lib/make-library.sh b/make/lib/make-library.sh
deleted file mode 100644
index a486a7bf7..000000000
--- a/make/lib/make-library.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-. $stdenv/setup
-
-objs=
-for i in $objects; do
- obj=$(echo $i/*.o)
- objs="$objs $obj"
-done
-
-echo "archiving object files into library \`$libraryName'..."
-
-ensureDir $out
-
-if test -z "$sharedLib"; then
-
- outPath=$out/lib${libraryName}.a
-
- ar crs $outPath $objs
- ranlib $outPath
-
-else
-
- outPath=$out/lib${libraryName}.so
-
- gcc -shared -o $outPath $objs
-
-fi
-
-