From owner-freebsd-questions@FreeBSD.ORG Tue Mar 25 09:09:30 2014 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A2EFD807 for ; Tue, 25 Mar 2014 09:09:30 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5CA4BE48 for ; Tue, 25 Mar 2014 09:09:30 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WSNMN-0006UZ-9w for freebsd-questions@freebsd.org; Tue, 25 Mar 2014 10:09:27 +0100 Received: from pool-173-79-82-127.washdc.fios.verizon.net ([173.79.82.127]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 25 Mar 2014 10:09:27 +0100 Received: from nightrecon by pool-173-79-82-127.washdc.fios.verizon.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 25 Mar 2014 10:09:27 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-questions@freebsd.org From: Michael Powell Subject: Re: 'make' behavior in FreeBSD-10 ? Date: Tue, 25 Mar 2014 05:09:06 -0400 Lines: 63 Message-ID: References: <532F1A58.30702@wi.mit.edu> <44siq7wjwi.fsf@be-well.ilk.org> <53307B1E.4080704@wi.mit.edu> <5331254C.5050301@bsdforen.de> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: pool-173-79-82-127.washdc.fios.verizon.net User-Agent: KNode/4.12.3 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: nightrecon@hotmail.com List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Mar 2014 09:09:30 -0000 Dominic Fandrey wrote: > On 24/03/2014 19:36, Assaf Gordon wrote: >> Hello, >> >> On 03/24/2014 02:06 PM, Lowell Gilbert wrote: >>> >>>> I'm trying to track down an issue in compiling 'autotools' packages >>>> that appears in FreeBSD-10 . (I'm not a frequent FreeBSD user, so it's >>>> possible I'm missing something - any help would be appreciated). >>> >>> Is automake specifically what you're trying to build, or are the other >>> questions relevant as well? >>> >>> This is relevant because it sounds as though you are not trying to use >>> the FreeBSD ports (or pkg; they're really the same thing in terms of >>> what gets installed) system. That's the usual way such a thing would be >>> done, and the exceptions are almost entirely people who would be able to >>> answer such questions for themselves. >> >> I'm trying to build a package that uses autotools+automake, and should be >> built with "./confgure && make". > > Just use "./configure && gmake" and you'll be fine. The assumption that > make == gmake is simply wrong on FreeBSD. And the syntactical differences > are so huge that only the most primitive makefiles can be made compatible > without a complete recode. > >> To rephrase my previous question, to a very narrow technical issue: >> Is there a way to make such a "makefile" complete successfully on >> FreeBSD: > > Yes, use gmake. > When using the ports system to build/install third part apps, a port that needs gmake to build will contain a line such as USES= gmake in that ports' Makefile. If you are trying to build something that has an existing port use the ports system. Don't just untar the tarball somewhere and expect it to always work. Even though in theory autotools-based build procedures should work all the time everywhere, the reality is sometimes they don't. Many times today the source has various "Linuxisms" which negate the expected portability. Sometimes a port needs to be patched in order to port it to FreeBSD and work around portability issues. For such a port there will be a directory named files which contains the patches. The devel/autoconf port contains such by the way of example. Autotools, autoconf, automake all build fine for most - hence the question about whether you are using the ports system to install software, as opposed to just untarring the tarball somewhere and doing ./configure && make. You cd to the port you want to build and just type make && make install && make clean, or just make install clean (same thing). If the Makefile requires gmake it will have the afore mentioned line it it. If portability is broken and needs patches they will automatically get applied. If the port needs gmake instead the Makefile will contain a line like mentioned above. You get gmake by installing the /usr/ports/devel/gmake/ port. How to install software on FreeBSD is covered in the Handbook. -Mike