Switch from make to scons
Scons will track changes to my include/ directory better than make will. I also have an easier time understanding the Sconstruct file than I did with Makefiles.
This commit is contained in:
parent
ac03eed3f5
commit
7e9b2f9380
|
@ -1,4 +1,5 @@
|
||||||
*.o
|
*.o
|
||||||
*.swp
|
*.swp
|
||||||
|
.sconsign.dblite
|
||||||
ocarina
|
ocarina
|
||||||
include/version.h
|
include/version.h
|
||||||
|
|
41
Makefile
41
Makefile
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
MAJOR = 5
|
|
||||||
MINOR = 0
|
|
||||||
BUG = 0
|
|
||||||
DEBUG = y
|
|
||||||
|
|
||||||
export CC = g++
|
|
||||||
export INCLUDE = -I$(CURDIR)/include
|
|
||||||
export GTK = `pkg-config --cflags --libs gtk+-2.0`
|
|
||||||
export GST = `pkg-config --cflags --libs gstreamer-0.10`
|
|
||||||
export LINK = $(GST) $(GTK)
|
|
||||||
export SRCDIR = $(CURDIR)
|
|
||||||
|
|
||||||
export MAKEFLAGS = --no-print-directory
|
|
||||||
|
|
||||||
DIRS = libsaria gui
|
|
||||||
CLEANDIRS = $(DIRS:%=clean-%)
|
|
||||||
|
|
||||||
ifeq ($(DEBUG), y)
|
|
||||||
export CFLAGS = -Wall -Werror -g -DDEBUG
|
|
||||||
else
|
|
||||||
export CFLAGS = -O2
|
|
||||||
endif
|
|
||||||
|
|
||||||
export BUILD = $(CC) $(CFLAGS) $(INCLUDE)
|
|
||||||
.PHONY: all $(DIRS) clean $(CLEANDIRS) version.h
|
|
||||||
|
|
||||||
all: version.h $(DIRS)
|
|
||||||
$(BUILD) $(shell find . | grep "\.o$$") -o ocarina $(LINK)
|
|
||||||
|
|
||||||
version.h:
|
|
||||||
sh scripts/make_version.sh $(SRCDIR) $(MAJOR) $(MINOR) $(BUG) $(DEBUG)
|
|
||||||
|
|
||||||
$(DIRS):
|
|
||||||
$(MAKE) -f $(SRCDIR)/scripts/Makefile -C $@
|
|
||||||
|
|
||||||
clean: $(CLEANDIRS)
|
|
||||||
rm -f *.o ocarina include/version.h
|
|
||||||
|
|
||||||
$(CLEANDIRS):
|
|
||||||
$(MAKE) -f $(SRCDIR)/scripts/Makefile -C $(@:clean-%=%) clean
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
MAJOR = 5
|
||||||
|
MINOR = 0
|
||||||
|
BUG = 0
|
||||||
|
|
||||||
|
CONFIG={"FLAGS":[]}
|
||||||
|
def read_config():
|
||||||
|
for line in open("config"):
|
||||||
|
(key, value) = line.strip().split("=")
|
||||||
|
CONFIG[key] = value
|
||||||
|
if value == "y":
|
||||||
|
CONFIG["FLAGS"] += ["-D"+key]
|
||||||
|
read_config()
|
||||||
|
|
||||||
|
FLAGS = ["-O2"]
|
||||||
|
if CONFIG["DEBUG"] == "y":
|
||||||
|
FLAGS = ["-Wall", "-Werror", "-g"]
|
||||||
|
|
||||||
|
env = Environment(CCFLAGS = FLAGS + CONFIG["FLAGS"])
|
||||||
|
if ARGUMENTS.get('VERBOSE') != "1":
|
||||||
|
env.Append(CXXCOMSTR = "CXX $TARGET")
|
||||||
|
env.Append(LINKCOMSTR = "Linking $TARGET")
|
||||||
|
env.Append(CPPPATH = "include")
|
||||||
|
env.ParseConfig('pkg-config --cflags --libs gtk+-2.0')
|
||||||
|
env.ParseConfig('pkg-config --cflags --libs gstreamer-0.10')
|
||||||
|
|
||||||
|
def version_h():
|
||||||
|
f = open("include/version.h", "w")
|
||||||
|
for line in open("include/version.tmpl", "r"):
|
||||||
|
line = line.replace("__MAJOR__", str(MAJOR))
|
||||||
|
line = line.replace("__MINOR__", str(MINOR))
|
||||||
|
line = line.replace("__BUG__", str(BUG))
|
||||||
|
line = line.replace("__EXTRA__", CONFIG["EXTRA"])
|
||||||
|
f.write(line)
|
||||||
|
f.close()
|
||||||
|
version_h()
|
||||||
|
|
||||||
|
def list_dirs(directory):
|
||||||
|
import os
|
||||||
|
dirs = [x[0] for x in os.walk(directory)]
|
||||||
|
return [Glob(dir + "/*.cpp") for dir in dirs]
|
||||||
|
|
||||||
|
ocarina=env.Program('ocarina', list_dirs('libsaria') + list_dirs('gui'))
|
||||||
|
Clean(ocarina, "include/version.h")
|
|
@ -5,10 +5,15 @@
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
unsigned int MAJOR = AAAAA;
|
unsigned int MAJOR = __MAJOR__;
|
||||||
unsigned int MINOR = BBBBB;
|
unsigned int MINOR = __MINOR__;
|
||||||
unsigned int BUG = CCCCC;
|
unsigned int BUG = __BUG__;
|
||||||
string EXTRA = "DDDDD";
|
string EXTRA = "__EXTRA__";
|
||||||
|
#ifdef DEBUG
|
||||||
|
bool IS_DEBUG = true;
|
||||||
|
#else /* DEBUG */
|
||||||
|
bool IS_DEBUG = false;
|
||||||
|
#endif /* DEBUG */
|
||||||
|
|
||||||
string vers_str()
|
string vers_str()
|
||||||
{
|
{
|
||||||
|
@ -17,7 +22,9 @@ string vers_str()
|
||||||
if (BUG != 0)
|
if (BUG != 0)
|
||||||
stream << "." << BUG;
|
stream << "." << BUG;
|
||||||
if (EXTRA != "")
|
if (EXTRA != "")
|
||||||
stream << EXTRA;
|
stream << "-" << EXTRA;
|
||||||
|
if (IS_DEBUG == true)
|
||||||
|
stream << "-" << "debug";
|
||||||
return stream.str();
|
return stream.str();
|
||||||
}
|
}
|
||||||
#endif /* OCARINA_VERSION_H */
|
#endif /* OCARINA_VERSION_H */
|
|
@ -1,22 +0,0 @@
|
||||||
# Bryan Schumaker (4 / 1 / 2011)
|
|
||||||
|
|
||||||
DIRS = $(shell ls -l | grep '^d' | awk '{print $$9}')
|
|
||||||
FILES = $(shell ls *.cpp)
|
|
||||||
OBJS = $(FILES:%.cpp=%.o)
|
|
||||||
CLEANDIRS = $(DIRS:%=clean-%)
|
|
||||||
|
|
||||||
.PHONY: all $(DIRS) clean $(CLEANDIRS)
|
|
||||||
|
|
||||||
all:$(OBJS) $(DIRS)
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
$(BUILD) -c $*.cpp $(LINK)
|
|
||||||
|
|
||||||
$(DIRS):
|
|
||||||
$(MAKE) -f $(SRCDIR)/scripts/Makefile -C $@
|
|
||||||
|
|
||||||
clean: $(CLEANDIRS)
|
|
||||||
rm -f *.o
|
|
||||||
|
|
||||||
$(CLEANDIRS):
|
|
||||||
$(MAKE) -f $(SRCDIR)/scripts/Makefile -C $(@:clean-%=%) clean
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SRCDIR=$1
|
|
||||||
MAJOR=$2
|
|
||||||
MINOR=$3
|
|
||||||
BUG=$4
|
|
||||||
EXTRA=""
|
|
||||||
|
|
||||||
if [ "$5" == "y" ]; then
|
|
||||||
EXTRA="-debug"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FILE=$SRCDIR/include/version.h
|
|
||||||
rm -f $FILE
|
|
||||||
cp $SRCDIR/scripts/version.tmpl $FILE
|
|
||||||
|
|
||||||
function replace
|
|
||||||
{
|
|
||||||
sed "s/$1/$2/" $FILE > $FILE.new
|
|
||||||
mv $FILE.new $FILE
|
|
||||||
}
|
|
||||||
|
|
||||||
replace AAAAA $MAJOR
|
|
||||||
replace BBBBB $MINOR
|
|
||||||
replace CCCCC $BUG
|
|
||||||
replace DDDDD $EXTRA
|
|
Loading…
Reference in New Issue