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 2 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, write to the Free Software 21# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 22# 23 24# Compile a program consisting of one .c file. For example 25# simple_compile "foo" will compile foo.c to the executable foo.exe 26# Use a second argument to specify link libraries. 27 28proc simple_compile { args } { 29 global srcdir 30 global subdir 31 32 # Compile up program 33 34 set program [lindex $args 0] 35 set libs [lindex $args 1] 36 37 if { $libs == "" } { 38 39 set output [target_compile "$srcdir/$subdir/$program.c" \ 40 "$srcdir/$subdir/$program" executable \ 41 {additional_flags="-g"}] 42 } else { 43 44 set output [target_compile "$srcdir/$subdir/$program.c" \ 45 "$srcdir/$subdir/$program" executable \ 46 [list libs=$libs additional_flags="-g"]] 47 } 48 49 # Check for errors 50 51 if {$output != ""} { 52 perror "compile $program" 53 puts $output 54 return -1 55 } 56} 57 58# Compile a program from a Makefile.suffix 59 60proc simple_make { args } { 61 global srcdir 62 global subdir 63 64 # Compile up program with make 65 66 set suffix [lindex $args 0] 67 set program [lindex $args 1] 68 69 set output [util_start "make" \ 70 "-C $srcdir/$subdir -f Makefile.$suffix $program"] 71 72 # Check for errors 73 74 if { [regexp "Error" $output] } { 75 perror "make $program" 76 puts $output 77 return -1 78 } 79} 80