Changes in / [e01bfbc:2edd5502]
- Files:
-
- 12 edited
-
Jenkinsfile (modified) (3 diffs)
-
Makefile.in (modified) (2 diffs)
-
config.h.in (modified) (2 diffs)
-
configure (modified) (5 diffs)
-
configure.ac (modified) (1 diff)
-
src/Makefile.in (modified) (2 diffs)
-
src/driver/Makefile.in (modified) (2 diffs)
-
src/driver/cc1.cc (modified) (2 diffs)
-
src/driver/cfa.cc (modified) (3 diffs)
-
src/examples/Makefile.in (modified) (2 diffs)
-
src/libcfa/Makefile.in (modified) (2 diffs)
-
src/libcfa/iostream.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
re01bfbc r2edd5502 1 1 2 //===========================================================================================================3 // Main compilation routine4 //===========================================================================================================5 //Compilation script is done here but environnement set-up and error handling is done in main loop6 def cfa_build() {7 build_stage 'Checkout'8 def install_dir = pwd tmp: true9 //checkout the source code and clean the repo10 sh "rm -rf * ${install_dir}/*"11 checkout scm12 2 13 build_stage 'Build'14 15 //Configure the conpilation (Output is not relevant)16 //Use the current directory as the installation target so nothing17 //escapes the sandbox18 //Also specify the compiler by hand19 sh "./configure CXX=${currentCC.cpp_cc} --with-backend-compiler=${currentCC.cfa_backend_cc} --prefix=${install_dir} > /dev/null"20 21 //Compile the project22 sh 'make -j 8 install'23 24 build_stage 'Test'25 26 //Run the tests from the example directory27 dir ('src/examples') {28 sh './runTests.sh'29 }30 31 build_stage 'Cleanup'32 33 //Cleanup the install dir34 sh "rm -rf ${install_dir}/*"35 }36 37 //===========================================================================================================38 // Helper classes/variables/routines to make the status and stage name easier to use39 //===========================================================================================================40 //Description of a compiler (Must be serializable since pipelines are persistent)41 class CC_Desc implements Serializable {42 public String cc_name43 public String cpp_cc44 public String cfa_backend_cc45 46 CC_Desc(String cc_name, String cpp_cc, String cfa_backend_cc) {47 this.cc_name = cc_name48 this.cpp_cc = cpp_cc49 this.cfa_backend_cc = cfa_backend_cc50 }51 }52 53 //Global Variables defining the compiler and at which point in the build we are54 // These variables are used but can't be declared before hand because of wierd scripting rules55 // @Field String currentCC56 // @Field String status_prefix57 58 //Wrapper to sync stage name and status name59 def build_stage(String name) {60 def stage_name = "${currentCC.cc_name} ${name}".trim()61 stage stage_name62 63 status_prefix = stage_name64 }65 66 //===========================================================================================================67 // Main loop of the compilation68 //===========================================================================================================69 3 node ('master'){ 70 4 71 5 def err = null 6 def stage_name 72 7 def log_needed = false 73 8 currentBuild.result = "SUCCESS" 74 9 75 10 try { 76 // //Prevent the build from exceeding 30 minutes77 // timeout(30) {78 //79 // //Wrap build to add timestamp to command line80 // wrap([$class: 'TimestamperBuildWrapper']) {81 11 82 //Compile using gcc-4.9 83 currentCC = new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9') 84 cfa_build() 12 stage 'Checkout' 85 13 86 // } 87 // } 14 //checkout the source code and clean the repo 15 checkout scm 16 sh 'git clean -dfq' 88 17 18 stage 'Build' 19 20 stage_name = 'Build' 21 22 //Clean the directory (Output is not relevant) 23 sh 'make clean > /dev/null' 24 25 //Configure the conpilation (Output is not relevant) 26 //Use the current directory as the installation target so nothing 27 //escapes the sandbox 28 //Also specify the compiler by hand 29 def install_dir = pwd tmp: true 30 sh "CC=gcc-4.9 CXX=g++-4.9 ./configure --prefix=${install_dir} > /dev/null" 31 32 //Compile the project 33 sh 'make -j 8 install' 34 35 stage 'Test' 36 37 stage_name = 'Test' 38 39 dir ('src/examples') { 40 sh './runTests.sh' 41 } 42 43 stage 'Cleanup' 44 45 //install doesn't need to be cleaned since prefix uses temporary workspace 89 46 } 90 47 91 //If an exception is caught we need to change the status and remember to92 //attach the build log to the email93 48 catch (Exception caughtError) { 94 //rethrow error later95 49 err = caughtError 50 log_needed = true 51 currentBuild.result = "FAILURE" 96 52 97 //An error has occured, the build log is relevent 98 log_needed = true 99 100 //Store the result of the build log 101 currentBuild.result = "${status_prefix} FAILURE".trim() 53 switch(stage_name) { 54 case 'Test' : 55 currentBuild.result = "TEST FAILURE" 56 break 57 default : 58 break 59 } 102 60 } 103 61 … … 113 71 } 114 72 115 //===========================================================================================================116 //Routine responsible of sending the email notification once the build is completed117 //===========================================================================================================118 73 def email(String status, boolean log) { 119 74 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line … … 121 76 def project_name = (env.JOB_NAME =~ /(.+)\/.+/)[0][1].toLowerCase() 122 77 123 def email_subject = "[${project_name} git] [BUILD# ${env.BUILD_NUMBER} - ${status}] - branch ${env.BRANCH_NAME}"124 def email_body = """ This is an automated email from the Jenkins build machine. It was125 generated because of a git hooks/post-receive script following126 a ref change was pushed to the repository containing127 the project "UNNAMED PROJECT".78 def email_subject = "[${project_name} git] UNNAMED PROJECT branch ${env.BRANCH_NAME} - Build # ${env.BUILD_NUMBER} - ${status}!" 79 def email_body = """ This is an automated email from the Jenkins build machine. It was 80 generated because of a git hooks/post-receive script following 81 a ref change was pushed to the repository containing 82 the project "UNNAMED PROJECT". 128 83 129 The branch ${env.BRANCH_NAME} has been updated.84 The branch ${env.BRANCH_NAME} has been updated. 130 85 131 Check console output at ${env.BUILD_URL} to view the results."""86 Check console output at ${env.BUILD_URL} to view the results.""" 132 87 133 88 // def config = new File('/u/cforall/software/cfa/cfa-cc/config').text -
Makefile.in
re01bfbc r2edd5502 118 118 CC = @CC@ 119 119 CCDEPMODE = @CCDEPMODE@ 120 CFA_BACKEND_CC = @CFA_BACKEND_CC@121 120 CFA_BINDIR = @CFA_BINDIR@ 122 121 CFA_INCDIR = @CFA_INCDIR@ … … 137 136 EGREP = @EGREP@ 138 137 EXEEXT = @EXEEXT@ 138 GCC_PATH = @GCC_PATH@ 139 139 GREP = @GREP@ 140 140 INSTALL = @INSTALL@ -
config.h.in
re01bfbc r2edd5502 1 1 /* config.h.in. Generated from configure.ac by autoheader. */ 2 3 /* Location of include files. */4 #undef CFA_BACKEND_CC5 2 6 3 /* Location of cfa command. */ … … 23 20 /* Define to 1 if using `alloca.c'. */ 24 21 #undef C_ALLOCA 22 23 /* Path/name of C compiler. */ 24 #undef GCC_PATH 25 25 26 26 /* Define to 1 if you have `alloca', as a function or macro. */ -
configure
re01bfbc r2edd5502 643 643 CFA_INCDIR 644 644 CFA_PREFIX 645 CFA_BACKEND_CC646 645 BACKEND_CC 646 GCC_PATH 647 647 MAINT 648 648 MAINTAINER_MODE_FALSE … … 2922 2922 # Check whether --with-backend-compiler was given. 2923 2923 if test "${with_backend_compiler+set}" = set; then : 2924 withval=$with_backend_compiler; backendcompiler=$withval 2925 else 2926 backendcompiler="" 2927 fi 2928 2929 if test "x$backendcompiler" != x; then 2930 BACKEND_CC=${backendcompiler} 2931 else 2924 withval=$with_backend_compiler; backcompiler=$withval 2925 else 2926 backcompiler="" 2927 fi 2928 2929 if test x$backcompiler != x; then 2930 cat >>confdefs.h <<_ACEOF 2931 #define GCC_PATH "${backcompiler}" 2932 _ACEOF 2933 2934 BACKEND_CC=${backcompiler} 2935 else 2932 2936 # Extract the first word of "gcc", so it can be a program name with args. 2933 2937 set dummy gcc; ac_word=$2 2934 2938 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 2935 2939 $as_echo_n "checking for $ac_word... " >&6; } 2936 if ${ac_cv_path_ BACKEND_CC+:} false; then :2940 if ${ac_cv_path_GCC_PATH+:} false; then : 2937 2941 $as_echo_n "(cached) " >&6 2938 2942 else 2939 case $ BACKEND_CCin2943 case $GCC_PATH in 2940 2944 [\\/]* | ?:[\\/]*) 2941 ac_cv_path_ BACKEND_CC="$BACKEND_CC" # Let the user override the test with a path.2945 ac_cv_path_GCC_PATH="$GCC_PATH" # Let the user override the test with a path. 2942 2946 ;; 2943 2947 *) … … 2949 2953 for ac_exec_ext in '' $ac_executable_extensions; do 2950 2954 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 2951 ac_cv_path_ BACKEND_CC="$as_dir/$ac_word$ac_exec_ext"2955 ac_cv_path_GCC_PATH="$as_dir/$ac_word$ac_exec_ext" 2952 2956 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 2953 2957 break 2 … … 2957 2961 IFS=$as_save_IFS 2958 2962 2963 test -z "$ac_cv_path_GCC_PATH" && ac_cv_path_GCC_PATH="N/A" 2959 2964 ;; 2960 2965 esac 2961 2966 fi 2962 BACKEND_CC=$ac_cv_path_BACKEND_CC 2963 if test -n "$ BACKEND_CC"; then2964 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ BACKEND_CC" >&52965 $as_echo "$ BACKEND_CC" >&6; }2967 GCC_PATH=$ac_cv_path_GCC_PATH 2968 if test -n "$GCC_PATH"; then 2969 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCC_PATH" >&5 2970 $as_echo "$GCC_PATH" >&6; } 2966 2971 else 2967 2972 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 … … 2970 2975 2971 2976 2972 if test " x$BACKEND_CC" = "x"; then2977 if test "$GCC_PATH" = "N/A"; then 2973 2978 as_fn_error $? "some version of gcc is needed. Get it at ftp://ftp.gnu.org" "$LINENO" 5 2974 2979 exit 1 2975 2980 fi 2976 fi2977 2981 2978 2982 cat >>confdefs.h <<_ACEOF 2979 #define CFA_BACKEND_CC "${BACKEND_CC}" 2980 _ACEOF 2981 2983 #define GCC_PATH "${GCC_PATH}" 2984 _ACEOF 2985 2986 BACKEND_CC=${GCC_PATH} 2987 fi 2982 2988 2983 2989 -
configure.ac
re01bfbc r2edd5502 20 20 21 21 AC_ARG_WITH(backend-compiler, 22 [ --with-backend-compiler=PROGRAM PROGRAM that performs the final code compilation (must be gcc-compatible) ], 23 backendcompiler=$withval, backendcompiler="") 24 if test "x$backendcompiler" != x; then 25 BACKEND_CC=${backendcompiler} 26 else 27 AC_PATH_PROG(BACKEND_CC, gcc, []) 28 if test "x$BACKEND_CC" = "x"; then 22 [ --with-backend-compiler=PROGRAM PROGRAM that performs the final code compilation (must be gcc-compatible) ], 23 backcompiler=$withval, backcompiler="") 24 if test x$backcompiler != x; then 25 AC_DEFINE_UNQUOTED(GCC_PATH, "${backcompiler}") 26 BACKEND_CC=${backcompiler} 27 else 28 AC_PATH_PROG(GCC_PATH, gcc, N/A) 29 if test "$GCC_PATH" = "N/A"; then 29 30 AC_MSG_ERROR(some version of gcc is needed. Get it at ftp://ftp.gnu.org) 30 31 exit 1 31 32 fi 32 fi 33 AC_DEFINE_UNQUOTED(CFA_BACKEND_CC, "${BACKEND_CC}", [Location of include files.]) 34 AC_SUBST(CFA_BACKEND_CC) 33 AC_DEFINE_UNQUOTED(GCC_PATH, "${GCC_PATH}", [Path/name of C compiler.]) 34 BACKEND_CC=${GCC_PATH} 35 fi 36 AC_SUBST(BACKEND_CC) 35 37 36 38 if test "x$prefix" = "xNONE"; then -
src/Makefile.in
re01bfbc r2edd5502 240 240 CC = @CC@ 241 241 CCDEPMODE = @CCDEPMODE@ 242 CFA_BACKEND_CC = @CFA_BACKEND_CC@243 242 CFA_BINDIR = @CFA_BINDIR@ 244 243 CFA_INCDIR = @CFA_INCDIR@ … … 259 258 EGREP = @EGREP@ 260 259 EXEEXT = @EXEEXT@ 260 GCC_PATH = @GCC_PATH@ 261 261 GREP = @GREP@ 262 262 INSTALL = @INSTALL@ -
src/driver/Makefile.in
re01bfbc r2edd5502 80 80 CC = @CC@ 81 81 CCDEPMODE = @CCDEPMODE@ 82 CFA_BACKEND_CC = @CFA_BACKEND_CC@83 82 CFA_BINDIR = @CFA_BINDIR@ 84 83 CFA_INCDIR = @CFA_INCDIR@ … … 99 98 EGREP = @EGREP@ 100 99 EXEEXT = @EXEEXT@ 100 GCC_PATH = @GCC_PATH@ 101 101 GREP = @GREP@ 102 102 INSTALL = @INSTALL@ -
src/driver/cc1.cc
re01bfbc r2edd5502 10 10 // Created On : Fri Aug 26 14:23:51 2005 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 2 17:24:26201613 // Update Count : 7 912 // Last Modified On : Thu May 5 16:04:30 2016 13 // Update Count : 77 14 14 // 15 15 … … 30 30 31 31 32 string compiler_name( CFA_BACKEND_CC );// path/name of C compiler32 string compiler_name( GCC_PATH ); // path/name of C compiler 33 33 34 34 string D__GCC_BPREFIX__( "-D__GCC_BPREFIX__=" ); -
src/driver/cfa.cc
re01bfbc r2edd5502 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 2 17:24:25201613 // Update Count : 13 712 // Last Modified On : Wed Apr 20 18:31:28 2016 13 // Update Count : 133 14 14 // 15 15 … … 75 75 string langstd; // language standard 76 76 77 string compiler_path( CFA_BACKEND_CC );// path/name of C compiler77 string compiler_path( GCC_PATH ); // path/name of C compiler 78 78 string compiler_name; // name of C compiler 79 79 … … 317 317 nargs += 1; 318 318 } else { 319 cerr << argv[0] << " error, compiler \"" << compiler_name << "\" unsupported." << endl;319 cerr << argv[0] << " error, compiler " << compiler_name << " not supported." << endl; 320 320 exit( EXIT_FAILURE ); 321 321 } // if -
src/examples/Makefile.in
re01bfbc r2edd5502 86 86 CC = @CFA_BINDIR@/cfa 87 87 CCDEPMODE = @CCDEPMODE@ 88 CFA_BACKEND_CC = @CFA_BACKEND_CC@89 88 CFA_BINDIR = @CFA_BINDIR@ 90 89 CFA_INCDIR = @CFA_INCDIR@ … … 107 106 EGREP = @EGREP@ 108 107 EXEEXT = @EXEEXT@ 108 GCC_PATH = @GCC_PATH@ 109 109 GREP = @GREP@ 110 110 INSTALL = @INSTALL@ -
src/libcfa/Makefile.in
re01bfbc r2edd5502 113 113 CC = ${abs_top_srcdir}/src/driver/cfa 114 114 CCDEPMODE = @CCDEPMODE@ 115 CFA_BACKEND_CC = @CFA_BACKEND_CC@116 115 CFA_BINDIR = @CFA_BINDIR@ 117 116 CFA_INCDIR = @CFA_INCDIR@ … … 132 131 EGREP = @EGREP@ 133 132 EXEEXT = @EXEEXT@ 133 GCC_PATH = @GCC_PATH@ 134 134 GREP = @GREP@ 135 135 INSTALL = @INSTALL@ -
src/libcfa/iostream.c
re01bfbc r2edd5502 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed May 27 17:56:53 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Thu May 26 10:08:31201613 // Update Count : 30 511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon May 02 15:13:55 2016 13 // Update Count : 302 14 14 // 15 15 … … 21 21 #include <float.h> // DBL_DIG, LDBL_DIG 22 22 #include <complex.h> // creal, cimag 23 #include <ctype.h> // isspace, ispunct 23 24 } 24 25 … … 335 336 } // ?|? 336 337 337 _Istream_cstrUC cstr( char * str ) { return (_Istream_cstrUC){ str }; }338 _Istream_cstrUC cstr( char * str ) { _Istream_cstrUC s = { str }; return s; } 338 339 forall( dtype istype | istream( istype ) ) 339 340 istype * ?|?( istype * is, _Istream_cstrUC cstr ) { … … 342 343 } // cstr 343 344 344 _Istream_cstrC cstr( char * str, int size ) { return (_Istream_cstrC){ str, size }; }345 _Istream_cstrC cstr( char * str, int size ) { _Istream_cstrC s = { str, size }; return s; } 345 346 forall( dtype istype | istream( istype ) ) 346 347 istype * ?|?( istype * is, _Istream_cstrC cstr ) {
Note:
See TracChangeset
for help on using the changeset viewer.