about summary refs log blame commit diff stats
path: root/archive/1.vm/build0
blob: 03ac8180dbcdcc4fe93318d561708863d925ec56 (plain) (tree)
1
2
3
4
5
6
7
8
9





                                   
              
                                                                   
                                                                    
                                                                           
                        

                                                                                                     
     
                                           
               
                  

          

                         


                         
                                    


                                                                                  
                                                                     
                                                                                        
                                    
                                                                                
                                                                                       
                                                          
 
                       
#!/bin/sh
# Compile mu from scratch.

set -v
set -e  # stop immediately on error

cd ../../tools
  # auto-generate various lists (ending in '_list' by convention) {
  # list of function declarations, so I can define them in any order
  grep -h "^[^ #].*) {" tangle.cc  |sed 's/ {.*/;/'  > tangle.function_list
  # list of tests to run
  grep -h "^[[:space:]]*void test_" tangle.cc  |sed 's/^\s*void \(.*\)() {$/\1,/'  > tangle.test_list
  grep -h "^\s*void test_" tangle.cc  |sed 's/^\s*void \(.*\)() {.*/"\1",/'  > tangle.test_name_list
  # }
  g++ -std=c++98 -g -O3 tangle.cc -o tangle
  ./tangle test
cd ../archive/1.vm

cd termbox
  gcc -g -O2 -c termbox.c
  gcc -g -O2 -c utf8.c
  ar rcs libtermbox.a *.o
cd ..

../../tools/tangle [0-9]*.cc > mu.cc
# auto-generate function declarations, so I can define them in any order
# functions start out unindented, have all args on the same line, and end in ') {'
#
#                                      \/ ignore struct/class methods
grep -h "^[^[:space:]#].*) {$" mu.cc  |grep -v ":.*("  |sed 's/ {.*/;/'  > function_list
# auto-generate list of tests to run
grep -h "^\s*void test_" mu.cc  |sed 's/^\s*void \(.*\)() {.*/\1,/'  > test_list
grep -h "^\s*void test_" mu.cc  |sed 's/^\s*void \(.*\)() {.*/"\1",/'  > test_name_list
g++ -std=c++98 -g -O2 mu.cc termbox/libtermbox.a -o mu_bin

cat [0-9]*.mu > core.mu