Compare commits

...

5 Commits
waf ... master

64 changed files with 79 additions and 64 deletions

6
.gitignore vendored
View File

@ -1,7 +1,5 @@
*.dep
fart
*.bmp
*.png
parser/parser.tab.cc
parser/parser.tab.hh
parser/lex.yy.cc
/.rscons*
/build/

View File

@ -1,10 +1,7 @@
export SCONSFLAGS := -Q
.PHONY: all
all:
@scons
install:
@scons $@
@./rscons
.PHONY: clean
clean:
@scons -c
@./rscons clean

View File

@ -1,24 +0,0 @@
require "rscons"
task :default do
Rscons::Environment.new do |env|
env.build_root = "build"
lexer_source = "#{env.build_root}/lex.yy.cc"
env.CFile(lexer_source, "parser/parser.ll")
parser_source = "#{env.build_root}/parser.tab.cc"
env.CFile(parser_source, "parser/parser.yy")
sources = Dir["{util,shapes,main,distrib,parser}/**/*.cc"]
sources << lexer_source
sources << parser_source
env["CXXFLAGS"] += ["-Wall", "-O2"]
env["CPPPATH"] += Dir["{util,shapes,main,distrib,parser}/**/"]
env["CPPPATH"] << "."
env["LIBS"] += ["fl", "pthread", "freeimage"]
env.Program("fart", sources)
end
end

21
Rsconscript Normal file
View File

@ -0,0 +1,21 @@
configure do
check_cxx_compiler
check_program "flex"
check_program "bison"
check_lib ":libfl.a"
check_lib "pthread"
check_lib "freeimage"
end
env do |env|
env["CCFLAGS"] += %w[-Wall -O2]
env["CPPPATH"] += glob("src/**")
env.CFile("^/parser/lexer.cc", "src/parser/parser.ll")
env.CFile("^/parser/parser.cc", "src/parser/parser.yy")
env["CPPPATH"] += ["#{env.build_root}/parser"]
sources = glob("src/**/*.cc")
sources += ["^/parser/lexer.cc", "^/parser/parser.cc"]
env.Program("fart", sources)
end

View File

@ -1,25 +0,0 @@
# vim:syntax=python
import os
target = 'fart'
subdirs = ['util', 'shapes', 'main', 'distrib']
parser_sources = Glob('parser/*.cc')
sources = map(lambda x: Glob(x + '/*.cc'), subdirs)
lexer_source = 'parser/lex.yy.cc'
parser_source = 'parser/parser.tab.cc'
for f in parser_sources:
if str(f) != lexer_source and str(f) != parser_source:
sources.append(f)
sources += [lexer_source, parser_source]
env = Environment(CPPFLAGS = '-I.',
CXXFLAGS = '-Wall -O2',
YACCFLAGS = '-d',
LIBS = ['-lfl', '-lpthread', '-lfreeimage'])
lexer = env.CXXFile(lexer_source, 'parser/parser.ll')
parser = env.CXXFile(parser_source, 'parser/parser.yy')
env.Depends(lexer, parser_source)
env.Program(target, sources)

2
configure vendored Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
exec ./rscons configure "$@"

46
rscons Executable file

File diff suppressed because one or more lines are too long

0
main/PointLight.cc → src/main/PointLight.cc Executable file → Normal file
View File

View File

@ -8,7 +8,7 @@
#include "nodes.h"
#include "parser.h"
#include "parser.tab.hh"
#include "parser.hh"
#define YY_USER_ACTION yylloc->first_column += yyleng;

View File

@ -8,7 +8,7 @@
#include "util/Scope.h"
#include "nodes.h"
#include "parser.h"
#include "parser.tab.hh" /* bison-generated header with YY[SL]TYPE */
#include "parser.hh" /* bison-generated header with YY[SL]TYPE */
using namespace std;
#define yyerror(msg) errFunc(msg, &yylloc)
@ -29,9 +29,9 @@ refptr<Scope> parser_scope;
%}
%pure-parser
%define api.pure
%locations
%error-verbose
%define parse.error verbose
%token PLUS;
%token MINUS;

0
shapes/Shape.cc → src/shapes/Shape.cc Executable file → Normal file
View File