1# 2# Compilation utility functions 3# 4 5# 6# Unix SMB/Netbios implementation. 7# Copyright (C) Tim Potter 2000 8# 9# This program is free software; you can redistribute it and/or modify 10# it under the terms of the GNU General Public License as published by 11# the Free Software Foundation; either version 3 of the License, or 12# (at your option) any later version. 13# 14# This program is distributed in the hope that it will be useful, 15# but WITHOUT ANY WARRANTY; without even the implied warranty of 16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17# GNU General Public License for more details. 18# 19# You should have received a copy of the GNU General Public License 20# along with this program; if not, see <http://www.gnu.org/licenses/>. 21# 22 23# Compile a program consisting of one .c file. For example 24# simple_compile "foo" will compile foo.c to the executable foo.exe 25# Use a second argument to specify link libraries. 26 27proc simple_compile { args } { 28 global srcdir 29 global subdir 30 31 # Compile up program 32 33 set program [lindex $args 0] 34 set libs [lindex $args 1] 35 36 if { $libs == "" } { 37 38 set output [target_compile "$srcdir/$subdir/$program.c" \ 39 "$srcdir/$subdir/$program" executable \ 40 {additional_flags="-g"}] 41 } else { 42 43 set output [target_compile "$srcdir/$subdir/$program.c" \ 44 "$srcdir/$subdir/$program" executable \ 45 [list libs=$libs additional_flags="-g"]] 46 } 47 48 # Check for errors 49 50 if {$output != ""} { 51 perror "compile $program" 52 puts $output 53 return -1 54 } 55} 56 57# Compile a program from a Makefile.suffix 58 59proc simple_make { args } { 60 global srcdir 61 global subdir 62 63 # Compile up program with make 64 65 set suffix [lindex $args 0] 66 set program [lindex $args 1] 67 68 set output [util_start "make" \ 69 "-C $srcdir/$subdir -f Makefile.$suffix $program"] 70 71 # Check for errors 72 73 if { [regexp "Error" $output] } { 74 perror "make $program" 75 puts $output 76 return -1 77 } 78} 79