# Build config file for libbu++ # # Copyright (C) 2007-2008 Xagasoft, All rights reserved. # # This file is part of the libbu++ library and is released under the # terms of the license contained in the file LICENSE. default action: check group "lnhdrs", check "libbu++.a", check group "tools" "tests" action: check group "lnhdrs", check group "tests" "all" action: check group "lnhdrs", check targets() "optparser" action: check "tests/optparser" set "CXXFLAGS" += "-ggdb -W -Wall" #set "CXXFLAGS" += "-O2 -Wall" # set "CXXFLAGS" += "-pg" # set "LDFLAGS" += "-pg" filesIn("src") filter regexp("^src/(.*)\\.h$", "bu/{re:1}.h"): rule "hln", group "lnhdrs", target file, input "src/{re:1}.h" "libbu++.a": rule "lib", target file, set "CXXFLAGS" += "-I. -fPIC", input filesIn("src") filter regexp("^.*\\.cpp$") #"libbu++.so": # rule "so", # target file, # set "CXXFLAGS" += "-I. -fPIC", # set "LDFLAGS" += "-lpthread -lbz2", # input filesIn("src") filter regexp("^.*\\.cpp$") directoriesIn("src/tests","tests/"): rule "exe", target file, group "tests", requires "libbu++.a", set "CXXFLAGS" += "-I.", set "LDFLAGS" += "-L. -lbu++", input filesIn("{fulldir}") filter regexp("^.*\\.cpp$") filesIn("src/tests") filter regexp("^src/tests/(.*)\\.cpp$", "tests/{re:1}"): rule "exe", target file, group "tests", requires "libbu++.a", set "CXXFLAGS" += "-I.", set "LDFLAGS" += "-L. -lbu++", input "src/{target}.cpp" filesIn("src/tools") filter regexp("^src/tools/(.*)\\.cpp$", "{re:1}"): rule "exe", target file, group "tools", requires "libbu++.a", set "CXXFLAGS" += "-I.", set "LDFLAGS" += "-L. -lbu++", input "src/tools/{target}.cpp" ["tests/itoqueue1", "tests/itoqueue2", "tests/socketblock", "tests/itoserver", "tests/itoheap"]: set "LDFLAGS" += "-lpthread" filesIn("src/unit") filter regexp("^src/unit/(.*)\\.unit$", "unit/{re:1}"): rule "exe", target file, group "tests", group "unit", requires "libbu++.a", set "CXXFLAGS" += "-I.", set "LDFLAGS" += "-L. -lbu++", input "src/{target}.unit" "tests/plugin": set "LDFLAGS" += "-ldl" "tests/bzip2": set "LDFLAGS" += "-lbz2" rule "exe": matches regexp("(.*)\\.o$"), aggregate toString(" "), perform command("g++ -o {target} {match} {LDFLAGS}") rule "lib": matches regexp("(.*)\\.o$"), aggregate toString(" "), perform command("ar cr {target} {match}") rule "so": matches regexp("(.*)\\.o$"), aggregate toString(" "), perform command("g++ -shared -o {target} {match} {LDFLAGS}") # perform command("ld -G -o {target} {match}") rule "cpp": matches regexp("(.*)\\.cpp$"), produces "{re:1}.o", requires commandToList("g++ -M {CXXFLAGS} {match}", "make"), perform command("g++ {CXXFLAGS} -c -o {target} {match}") rule "unit": matches regexp("(.*)\\.unit$"), produces "{re:1}.cpp", requires "mkunit.sh", perform command("./mkunit.sh \"{match}\" \"{target}\"") rule "hln": matches regexp("src/(.*)\\.h"), produces "bu/{re:1}.h", perform command("ln -s ../src/{re:1}.h {target}")