From ghudson@MIT.EDU Wed Dec 16 21:29:25 1998 Received: from MIT.EDU (SOUTH-STATION-ANNEX.MIT.EDU [18.72.1.2]) by rt-11.MIT.EDU (8.7.5/8.7.3) with SMTP id VAA11029 for ; Wed, 16 Dec 1998 21:29:24 -0500 Received: from SNORKLEWACKER.MIT.EDU by MIT.EDU with SMTP id AA07506; Wed, 16 Dec 98 21:29:17 EST Received: by snorklewacker.mit.edu (8.8.8/4.7) id VAA06023; Wed, 16 Dec 1998 21:29:23 -0500 (EST) Message-Id: <199812170229.VAA06023@snorklewacker.mit.edu> Date: Wed, 16 Dec 1998 21:29:23 -0500 (EST) From: Greg Hudson To: krb5-bugs@MIT.EDU Subject: Build system problems >Number: 677 >Category: krb5-build >Synopsis: Build system problems >Confidential: no >Severity: serious >Priority: medium >Responsible: krb5-unassigned >State: open >Class: sw-bug >Submitter-Id: unknown >Arrival-Date: Wed Dec 16 21:30:00 EST 1998 >Last-Modified: Fri Sep 14 10:46:49 EDT 2001 >Originator: Greg Hudson >Organization: >Release: >Environment: >Description: Here are two problems with the krb5 build system: * The user should be able to run "make CFLAGS=foo" to override the non-required cflags (-g vs. -O and anything specified in the CFLAGS environment variable at configure time) for the program. The same applies to CPPFLAGS and LDFLAGS. krb5 uses CFLAGS and LDFLAGS as its own variables, stuffing things like the -I../include options which are required for compilation. This violates the gnu makefile standards, and means that I can't control the compilation of krb5 in the same way I control the compilation of other autoconf'd packages (by putting LDFLAGS and CPPFLAGS or CFLAGS declarations in config.site). * When you have required preprocessor flags like -I../include and -L../lib, they should go on the command line before anything the user might have specified. If I tell the build system I want -L/usr/athena/lib in my link lines, krb5 should not put that first and pick up previously installed krb5 libraries from there. >How-To-Repeat: >Fix: >Audit-Trail: From: "Theodore Y. Ts'o" To: krb5-bugs@MIT.EDU, Greg Hudson Cc: gnats-admin@RT-11.MIT.EDU, krb5-prs@RT-11.MIT.EDU Subject: Re: pending/677: Build system problems Date: Thu, 17 Dec 1998 12:44:11 -0500 * The user should be able to run "make CFLAGS=foo" to override the non-required cflags (-g vs. -O and anything specified in the CFLAGS environment variable at configure time) for the program. The same applies to CPPFLAGS and LDFLAGS. krb5 uses CFLAGS and LDFLAGS as its own variables, stuffing things like the -I../include options which are required for compilation. This violates the gnu makefile standards, and means that I can't control the compilation of krb5 in the same way I control the compilation of other autoconf'd packages (by putting LDFLAGS and CPPFLAGS or CFLAGS declarations in config.site). Use the --with-ccflags option to the configure script instead. IMHO, the GNU Makefile standards are broken, since you can do the configure tests with one set of CFLAGS options, and then compile with a different set of CFLAGS options. It's also extremely inconvenient as a developer to type "make CFLAGS=foo" each time I recompile in a particular directory, instead of simply running "configure --with-cflags=foo" once, and then simply typing "make" when I need to recompile in a particular directory. Yes, at some point I suppose I should make CFLAGS work the way folks used to GNU conventions work, but for now, the easiest workaround is to use --with-ccflags option. - Ted Responsible-Changed-From-To: gnats-admin->krb5-unassigned Responsible-Changed-By: raeburn Responsible-Changed-When: Fri Sep 14 10:46:41 2001 Responsible-Changed-Why: refiled >Unformatted: