#!/bin/sh # This file is part of NIT ( http://www.nitlanguage.org ). # # Copyright 2008 Jean Privat # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # NAME # mkcsrc - generate a new c_src directory from a current nitc bootstrap # SYNOPSIS # ./mkcsrc [number] # DESCRIPTION # transform a bootstrap result (generated by the nc tool) into a new # c_src in the current directory (previous one will be errased). # One c_src generated, you can replace the old one in the root. # Before commiting, do not forget to: # * verify any regression # * add/remove files in c_src # OPTION # number is the bootstrap level to use. It corresponds to the nc # level. By default, the lastest generated nitc is used. # prefix p=$1 if [ "x$p" = "x" ]; then p=`ls .nit_compile*/nitc._build.sh -t | head -1 | sed 's!\.nit_compile\(.*\)/nitc\._build\.sh!\1!'` if [ "x$p" = "x" ]; then echo "No generated nitc" exit 1 fi echo "Lastest generated nitc is bootstrap level $p" fi rm -r c_src 2> /dev/null mkdir c_src sed -n '/^ *.nit_compile/{s!\\$!!;p}' .nit_compile3/nitc._build.sh | while read -r file; do cp $file c_src [ -r ${file%.c}.h ] && cp ${file%.c}.h c_src done sed -e "s|.nit_compile${p}|.|g;s|/\[a-z\]+/../|/|g;s|nitc_${p}|nitc|" -e 's/^CLIBDIR=.*/CLIBDIR="clib"/' .nit_compile${p}/nitc._build.sh > c_src/nitc._build.sh chmod +x c_src/nitc._build.sh cp -r ../c_src/Makefile ../c_src/README ../clib c_src