forked from lix-project/lix
e071f87dc5
To use it, just do (e.g.) "nix-build build.nix -A nix_env".
169 lines
4.8 KiB
Nix
169 lines
4.8 KiB
Nix
with import <nix-make/lib>;
|
|
with pkgs;
|
|
|
|
rec {
|
|
|
|
bin2c = link {
|
|
objects = [ (compileC { main = ./src/bin2c/bin2c.c; }) ];
|
|
programName = "bin2c";
|
|
};
|
|
|
|
bsdiff = link {
|
|
objects = [ (compileC { main = ./src/bsdiff-4.3/bsdiff.c; buildInputs = [ pkgs.bzip2 ]; }) ];
|
|
programName = "bsdiff";
|
|
buildInputs = [ pkgs.bzip2 ];
|
|
flags = "-lbz2";
|
|
};
|
|
|
|
bspatch = link {
|
|
objects = [ (compileC { main = ./src/bsdiff-4.3/bspatch.c; buildInputs = [ pkgs.bzip2 ]; }) ];
|
|
programName = "bspatch";
|
|
buildInputs = [ pkgs.bzip2 ];
|
|
flags = "-lbz2";
|
|
};
|
|
|
|
libformat = makeLibrary {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src ];
|
|
})
|
|
[ ./src/boost/format/format_implementation.cc
|
|
./src/boost/format/free_funcs.cc
|
|
./src/boost/format/parsing.cc
|
|
];
|
|
libraryName = "format";
|
|
};
|
|
|
|
libutil = makeLibrary {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/libutil ./src ./. ];
|
|
buildInputs = [ pkgs.openssl ];
|
|
})
|
|
[ ./src/libutil/util.cc
|
|
./src/libutil/hash.cc
|
|
./src/libutil/serialise.cc
|
|
./src/libutil/archive.cc
|
|
./src/libutil/xml-writer.cc
|
|
./src/libutil/immutable.cc
|
|
];
|
|
libraryName = "util";
|
|
};
|
|
|
|
libstore = makeLibrary {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/libstore ./src/libutil ./src ./. ];
|
|
buildInputs = [ pkgs.sqlite ];
|
|
cFlags = "-DNIX_STORE_DIR=\"/nix/store\" -DNIX_DATA_DIR=\"/home/eelco/Dev/nix/inst/share\" -DNIX_STATE_DIR=\"/nix/var/nix\" -DNIX_LOG_DIR=\"/foo\" -DNIX_CONF_DIR=\"/foo\" -DNIX_LIBEXEC_DIR=\"/foo\" -DNIX_BIN_DIR=\"/home/eelco/Dev/nix/inst/bin\"";
|
|
})
|
|
[ ./src/libstore/store-api.cc
|
|
./src/libstore/local-store.cc
|
|
./src/libstore/remote-store.cc
|
|
./src/libstore/derivations.cc
|
|
./src/libstore/build.cc
|
|
./src/libstore/misc.cc
|
|
./src/libstore/globals.cc
|
|
./src/libstore/references.cc
|
|
./src/libstore/pathlocks.cc
|
|
./src/libstore/gc.cc
|
|
./src/libstore/optimise-store.cc
|
|
];
|
|
libraryName = "store";
|
|
};
|
|
|
|
libmain = makeLibrary {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/libmain ./src/libstore ./src/libutil ./src ./. ];
|
|
})
|
|
[ ./src/libmain/shared.cc ];
|
|
libraryName = "main";
|
|
};
|
|
|
|
nix_hash = link {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/nix-hash ./src/libmain ./src/libstore ./src/libutil ./src ./. ];
|
|
})
|
|
[ ./src/nix-hash/nix-hash.cc
|
|
];
|
|
libraries = [ libformat libutil libstore libmain ];
|
|
buildInputs = [ pkgs.openssl pkgs.sqlite ];
|
|
flags = "-lssl -lsqlite3 -lstdc++";
|
|
programName = "nix-hash";
|
|
};
|
|
|
|
nix_store = link {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/nix-store ./src/libmain ./src/libstore ./src/libutil ./src ./. ];
|
|
})
|
|
[ ./src/nix-store/nix-store.cc
|
|
./src/nix-store/dotgraph.cc
|
|
./src/nix-store/xmlgraph.cc
|
|
];
|
|
libraries = [ libformat libutil libstore libmain ];
|
|
buildInputs = [ pkgs.openssl pkgs.sqlite ];
|
|
flags = "-lssl -lsqlite3 -lstdc++";
|
|
programName = "nix-store";
|
|
};
|
|
|
|
libexpr = makeLibrary {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/libexpr ./src/libstore ./src/libutil ./src ./. ];
|
|
})
|
|
[ ./src/libexpr/nixexpr.cc
|
|
./src/libexpr/eval.cc
|
|
./src/libexpr/primops.cc
|
|
./src/libexpr/lexer-tab.cc
|
|
./src/libexpr/parser-tab.cc
|
|
./src/libexpr/get-drvs.cc
|
|
./src/libexpr/attr-path.cc
|
|
./src/libexpr/value-to-xml.cc
|
|
./src/libexpr/common-opts.cc
|
|
./src/libexpr/names.cc
|
|
];
|
|
libraryName = "expr";
|
|
};
|
|
|
|
nix_instantiate = link {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/nix-instantiate ./src/libexpr ./src/libmain ./src/libstore ./src/libutil ./src ./. ];
|
|
})
|
|
[ ./src/nix-instantiate/nix-instantiate.cc ];
|
|
libraries = [ libformat libutil libstore libmain libexpr ];
|
|
buildInputs = [ pkgs.openssl pkgs.sqlite ];
|
|
flags = "-lssl -lsqlite3 -lstdc++";
|
|
programName = "nix-instantiate";
|
|
};
|
|
|
|
nix_env = link {
|
|
objects =
|
|
map (fn: compileC {
|
|
main = fn;
|
|
localIncludePath = [ ./src/nix-env ./src/libexpr ./src/libmain ./src/libstore ./src/libutil ./src ./. ];
|
|
})
|
|
[ ./src/nix-env/nix-env.cc
|
|
./src/nix-env/profiles.cc
|
|
./src/nix-env/user-env.cc
|
|
];
|
|
libraries = [ libformat libutil libstore libmain libexpr ];
|
|
buildInputs = [ pkgs.openssl pkgs.sqlite ];
|
|
flags = "-lssl -lsqlite3 -lstdc++";
|
|
programName = "nix-env";
|
|
};
|
|
|
|
all = [ bsdiff bspatch nix_hash nix_store nix_instantiate nix_env ];
|
|
|
|
}
|