[BACK]Return to GNUmakefile CVS log [TXT][DIR] Up to [Development] / projects / ogl-sample / main / gfx / lib / opengl

File: [Development] / projects / ogl-sample / main / gfx / lib / opengl / GNUmakefile (download)

Revision 1.5, Fri Jun 30 00:49:00 2000 UTC (17 years, 4 months ago) by shreiner
Branch: MAIN
CVS Tags: tested_with_xf86_3_3, HEAD
Changes since 1.4: +0 -2 lines

Change the ECHO macro (defined in tools/include/commondefs) to accomodate
the "-e" flag for Linux.  This take also removes a local ECHO macro
definition for uniformity.

#!gmake
#
# License Applicability. Except to the extent portions of this file are
# made subject to an alternative license as permitted in the SGI Free
# Software License B, Version 1.1 (the "License"), the contents of this
# file are subject only to the provisions of the License. You may not use
# this file except in compliance with the License. You may obtain a copy
# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
#
# http://oss.sgi.com/projects/FreeB
#
# Note that, as provided in the License, the Software is distributed on an
# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
# PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
#
# Original Code. The Original Code is: OpenGL Sample Implementation,
# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
# Copyright in any portions created by third parties is as indicated
# elsewhere herein. All Rights Reserved.
#
# Additional Notice Provisions: The application programming interfaces
# established by SGI in conjunction with the Original Code are The
# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
# Window System(R) (Version 1.3), released October 19, 1998. This software
# was created using the OpenGL(R) version 1.2.1 Sample Implementation
# published by SGI, but has not been independently verified as being
# compliant with the OpenGL(R) version 1.2.1 Specification.
#
# $Date$ $Revision$
# $Header: //depot/main/gfx/lib/opengl/GNUmakefile#23 $

COMMONPREF = standard
include defs/ALL.defs

# OGL root directory.
GFXDIR = $(OGLLIBSRC)

# Define this to the os that this GL is to be compiled for
ifndef GLOS
GLOS = NONE
endif

MAKE := $(MAKE) --no-print-directory

# This is a list of the directories used to build the GL
DIRS = drivers/$(GLPRODUCT) glcore generated

# This is a list of the Makefiles in each of the directories
GLMAKEFILES =				 \
	glcore/GNUmakefile		 \
	generated/GNUmakefile		 \
	drivers/$(GLPRODUCT)/GNUmakefile \
	$(NULL)

ifeq ($(GLOS),"NONE")
DIRS += $(GLOS)
GLMAKEFILES += $(GLOS)/GNUmakefile
endif

# List of all product types supported by this GL tree
ALLPRODUCTS = XSERVER

######################################################################

.PRECIOUS: GNUmakefile

default:
	@if test '$(GLPRODUCT)'X = 'X'; then		 \
	    $(ECHO) 'Must set GLPRODUCT before using make'; \
	    exit 255;					 \
	else						 \
	if test '$(GLPRODUCT)'X = 'ALLX'; then		 \
	    for i in $(ALLPRODUCTS); do			 \
		$(MAKE) GLPRODUCT=$i targets;		 \
	    done;					 \
	else						 \
	    $(MAKE) targets;				 \
	fi;						 \
	fi;

targets: drivers/$(GLPRODUCT).O/GNUmakefile
	cd drivers/$(GLPRODUCT).O; $(MAKE)

clean:
	@if test '$(GLPRODUCT)'X = 'X'; then		 \
	    $(ECHO) 'Must set GLPRODUCT before using make'; \
	    exit 255;					 \
	else						 \
	if test '$(GLPRODUCT)'X = 'ALLX'; then		 \
	    for i in $(ALLPRODUCTS); do			 \
		$(MAKE) GLPRODUCT=$i clean;		 \
	    done;					 \
	else						 \
	    ( cd $(GLPRODUCT) && $(MAKE) clean ) ;	 \
	    ( cd drivers/$(GLPRODUCT).O && $(MAKE) clean ) ; \
	fi;						 \
	fi;

clobber:
	@if test '$(GLPRODUCT)'X = 'X'; then		 \
	    $(ECHO) 'Must set GLPRODUCT before using make'; \
	    exit 255;					 \
	else						 \
	if test '$(GLPRODUCT)'X = 'ALLX'; then		 \
	    for i in $(ALLPRODUCTS); do			 \
		$(ECHO) $(RM) -r drivers/$$i'.O';	 \
		$(RM) -r drivers/$$i'.O';		 \
	    done;					 \
	else						 \
	    $(ECHO) $(RM) -r drivers/$(GLPRODUCT).O;	 \
	    $(RM) -r drivers/$(GLPRODUCT).O;		 \
	fi;						 \
	fi;

######################################################################

mkfile: $(_FORCE)
	@if test -f '$(GLPRODUCT)'X = 'X'; then			      \
	    $(ECHO) 'Must set GLPRODUCT before using make';	      \
	    exit 255;						      \
	else							      \
	    $(MAKE) generated_makefile				      \
			GENMK=drivers$(GLPRODUCT).O/GNUmakefile;      \
	    cd drivers/$(GLPRODUCT).O; rm -f Makedepend; $(MAKE) depend; \
	fi

drivers/$(GLPRODUCT).O/GNUmakefile: GNUmakefile $(GLMAKEFILES)
	$(MAKE) generated_makefile GENMK=$@
	cd drivers/$(GLPRODUCT).O; rm -f Makedepend; $(MAKE) depend

######################################################################

generated_makefile:
	@if test ! -d $(GENMK:.O/GNUmakefile=.O); then \
	    rm -f $(GENMK:.O/GNUmakefile=.O);	    \
	    mkdir $(GENMK:.O/GNUmakefile=.O);	    \
	fi
	rm -f $(GENMK)
	$(ECHO) '#! gmake' >> $(GENMK)
	$(ECHO) '# THIS MAKEFILE IS AUTOMATICALLY GENERATED - DO NOT EDIT\n' \
		>> $(GENMK)
	#
	$(ECHO) 'include $(GFXDIR)/defs/ALL.defs\n' >> $(GENMK)
	#
	$(ECHO) 'GENERATED_CFILES = \\' >> $(GENMK)
	for i in $(DIRS); do					      \
	    files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
		 list_generated_cfiles`; \
	    if test "$$files"X != 'NONE'X; then			      \
		for j in $$files; do				      \
		    $(ECHO) "\t$$j \\" >> $(GENMK);                   \
		done;						      \
	    fi;							      \
	done
	$(ECHO) '\t$$(NULL)\n' >> $(GENMK)
	#
	$(ECHO) 'GENERATED_SFILES = \\' >> $(GENMK)
	for i in $(DIRS); do					      \
	    files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
		list_generated_sfiles`; \
	    if test "$$files"X != 'NONE'X; then			      \
		for j in $$files; do				      \
		    $(ECHO) "\t$$j \\" >> $(GENMK);                   \
		done;						      \
	    fi;							      \
	done
	$(ECHO) '\t$$(NULL)\n' >> $(GENMK)
	#
	$(ECHO) 'GENERATED_HFILES = \\' >> $(GENMK)
	for i in $(DIRS); do					      \
	    files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
		list_generated_hfiles`; \
	    if test "$$files"X != 'NONE'X; then			      \
		for j in $$files; do				      \
		    $(ECHO) "\t$$j \\" >> $(GENMK);                   \
		done;						      \
	    fi;							      \
	done
	$(ECHO) '\t$$(NULL)\n' >> $(GENMK)
	#
	$(ECHO) 'CFILES = \\' >> $(GENMK)
	for i in $(DIRS); do				    \
	    files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
		list_cfiles`; \
	    if test "$$files"X != 'NONE'X; then		    \
		for j in $$files; do			    \
		    $(ECHO) "\t../../$$i/$$j \\" >> $(GENMK);       \
		done;					    \
	    fi;						    \
	done
	$(ECHO) '\t$$(GENERATED_CFILES)\n' >> $(GENMK)
	#
	$(ECHO) 'SFILES = \\' >> $(GENMK)
	for i in $(DIRS); do				    \
	    files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
		list_sfiles`; \
	    if test "$$files"X != 'NONE'X; then		    \
		for j in $$files; do			    \
		    $(ECHO) "\t../../$$i/$$j \\" >> $(GENMK);       \
		done;					    \
	    fi;						    \
	done
	$(ECHO) '\t$$(GENERATED_SFILES)\n' >> $(GENMK)
	#
	$(ECHO) 'TARGETS = $$(GLLIBNAME)\n' >> $(GENMK)
	#
	$(ECHO) 'default all:' >> $(GENMK)
	$(ECHO) '\t$$(MAKE) GLPRODUCT=$(GLPRODUCT) incdepend' >> $(GENMK)
	$(ECHO) '\t$$(MAKE) GLPRODUCT=$(GLPRODUCT) targets' >> $(GENMK)
	$(ECHO) >> $(GENMK)
	#
	$(ECHO) 'targets: $$(TARGETS)\n' >> $(GENMK)
	#
	$(ECHO) 'generated_srcs: $$(GENERATED_CFILES) $$(GENERATED_SFILES) $$(GENERATED_HFILES)\n' >> $(GENMK)
	#
	for i in $(DIRS); do				       \
	    if test -f $$i/Generate.mk; then		       \
		$(ECHO) "include ../../$$i/Generate.mk" >> $(GENMK); \
	    fi;						       \
	done
	$(ECHO) >> $(GENMK)
	#
	$(ECHO) 'OBJECTS = \\' >> $(GENMK)
	for i in $(DIRS); do				   \
	    for j in list_cfiles list_generated_cfiles; do \
		files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
			 $$j`;\
		if test "$$files"X != 'NONE'X; then	   \
		    for k in $$files; do		   \
			f=`basename $$k .c`;		   \
			$(ECHO) "\t$$f".o" \\" >> $(GENMK);   \
		    done;				   \
		fi;					   \
	    done;					   \
	    for j in list_sfiles list_generated_sfiles; do \
		files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
			$$j`; \
		if test "$$files"X != 'NONE'X; then	   \
		    for k in $$files; do		   \
			f=`basename $$k .s`;		   \
			$(ECHO) "\t$$f".o" \\" >> $(GENMK);   \
		    done;				   \
		fi;					   \
	    done;					   \
	done
	$(ECHO) '\t$$(NULL)\n' >> $(GENMK)
	#
	$(ECHO) '# Generate cross directory dependencies.' >> $(GENMK)
	for i in $(DIRS); do				    \
	    files=`$(MAKE) -s -C $$i -f GNUmakefile GFXDIR=$(GFXDIR)\
		list_cfiles`; \
	    if test "$$files"X != 'NONE'X; then		    \
		for j in $$files; do			    \
		    f=`basename $$j .c`;		   \
		    $(ECHO) "$$f.o: ../../$$i/$$j" >> $(GENMK);     \
		done;					    \
	    fi;						    \
	done
	$(ECHO) >> $(GENMK)
	#
	$(ECHO) 'LDIRT = $$(GENERATED_CFILES) $$(GENERATED_HFILES)\n' >> $(GENMK)
	#
	$(ECHO) 'incdepend: $$(GENERATED_CFILES) $$(GENERATED_HFILES)\n' \
		>> $(GENMK)
	$(ECHO) 'depend: $$(GENERATED_CFILES) $$(GENERATED_HFILES)\n' >> $(GENMK)
	#
	$(ECHO) '$$(GLLIBNAME): $$(OBJECTS)' >> $(GENMK)
	$(ECHO) '\trm -f $$@' >> $(GENMK)
	$(ECHO) '\t$$(AR) crlu $$@ $$(OBJECTS)' >> $(GENMK)
	$(ECHO) >> $(GENMK)
	$(ECHO) 'INSTALLFLAGS += -nopath' >> $(GENMK)
	$(ECHO) '-include ../../$$(DISTFILE_EXT)' >> $(GENMK)
	$(ECHO) >> $(GENMK)
	$(ECHO) 'include $$(COMMONRULES)' >>$(GENMK)

headers headers_install apps:

libs: default

libs_install install: default
	cd drivers/$(GLPRODUCT).O ; $(INSTALL) -F $(ROOT)/usr/lib $(GLLIBNAME)

distsi: drivers/$(GLPRODUCT).O/GNUmakefile
	cd drivers/$(GLPRODUCT).O; $(MAKE) $@

SUBDIRS = \
    defs \
    drivers \
    generated \
    glcore \
    include \
    lib

distoss:
	$(MAKE) $(COMMONPREF)$@
	@for d in $(SUBDIRS); do \
	    (cd $$d ; $(MAKE) -f GNUmakefile GFXDIR=$(GFXDIR) $@) ; \
	done

include $(COMMONRULES)