help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How make finds its targets?


From: Arsen Hayrapetyan
Subject: Re: How make finds its targets?
Date: Tue, 21 Aug 2007 14:13:28 +0200
User-agent: Thunderbird 1.5.0.12 (X11/20070719)

Paul Smith wrote:
On Tue, 2007-08-21 at 13:40 +0200, Arsen Hayrapetyan wrote:
  
Now, how Make finds the 'install-common' target?
The file Makefile.global-vars is attached to this message, but it
seems not to contain anything helpful.
    

The part that does what you're asking about is not shown in your
message. 
Thank you for response,

Well, I am sending then two Makefiles (find them attached please):
1) Makefile in top-level directory (top_level_Makefile)
2) Makefile in 'src' sub-directory (sub_Makefile)

May be they help to shed light on this issue.
 One thing to note is that although you say you attached
Makefile.global-vars, it looks more like you attached
Makefile.global-vars.in; that makefile seems like it should be processed
by autoconf (it has tokens like @openca_tools_prefix@ which are supposed
to be replaced by autoconf).

  
I've checked the file, it is not ".in" file. Anyway, as I understood, it has nothing to do with my question, do it?

Arsen.
# file: src/Makefile
#
# © 2001-2004 OpenCA Group
# $Revision: 1.35.2.1 $

TOP     = .
include $(TOP)/Makefile.global-vars

SNAP    = SNAP-$(TODAY)
VER     = $(VERSION)
C_DIR   = `$(ECHO) "$(PWD)" | $(SED) "s|/.*/||g"`
G_DIR   = `$(ECHO) "$(PWD)"`

SUBDIRS = \
        src \
        docs

#---- variable settings above, rules below ----

.PHONY: default info help ca ext test install-ca install-common install-ext 
install-ldap install-node install-offline install-pub install-ra install-doc 
clean clean.local distclean install-modules

default::       $(SUBDIRS)

info help::
                @$(ECHO) "Targets:"
                @$(ECHO) ""
                @$(ECHO) "  []                make everything"
                @$(ECHO) "  [ca]              make everything CA server related"
                @$(ECHO) "  [ext]             make everything RA and public 
server related"
                @$(ECHO) "  [doc]             make everything documentation 
related"
                @$(ECHO) ""
                @$(ECHO) "Install Target:"
                @$(ECHO) ""
                @$(ECHO) "  [install-offline] install all offline components 
(common, modules, ca, batch and node)"
                @$(ECHO) "  [install-online]  install all online components 
(common, modules, ra, pub, ldap and node)"
                @$(ECHO) "  [install-ext]     install RA and public server 
components"
                @$(ECHO) ""
                @$(ECHO) "Install Target:"
                @$(ECHO) ""
                @$(ECHO) "  [install-batch]   install batch system components"
                @$(ECHO) "  [install-ca]      install CA components"
                @$(ECHO) "  [install-common]  install all common components 
(for package builds)"
                @$(ECHO) "  [install-modules] install all perl modules (for 
package builds)"
                @$(ECHO) "  [install-ldap]    install LDAP components"
                @$(ECHO) "  [install-node]    install aministration components"
                @$(ECHO) "  [install-pub]     install public server components"
                @$(ECHO) "  [install-ra]      install RA server components"
                @$(ECHO) "  [install-scep]    install scep server components"
                @$(ECHO) "  [install-doc]     install documentation"
                @$(ECHO) "  [clean]           remove everything created by make"
                @$(ECHO) "  [distclean]       like clean, plus remove 
everything created by ./configure"
                @$(ECHO) ""
                @$(ECHO) "Development:"
                @$(ECHO) ""
                @$(ECHO) "  [dist]            build distribution package"
                @$(ECHO) "  [rpm]             build rpm"
                @$(ECHO) ""

ca ext::        default

doc::
                $(MAKE) docs SUBTARGET=

install-doc::
                $(MAKE) docs SUBTARGET=install

install-offline::       install-common install-modules install-batch install-ca 
install-node

install-online::        install-common install-modules install-ra install-pub 
install-ldap install-node install-scep

install-ext::           install-online

install-batch::         install-common-parts

install-ca::            install-common-parts

install-node::          install-common-parts

install-pub::           install-common-parts

install-ra::            install-common-parts

install-ldap::          install-common-parts

install-scep::          install-common-parts

install-modules::       install-common-parts

# test install-ca install-ext clean distclean install-scep::
test install-batch install-ca install-common install-modules install-ldap 
install-node install-pub install-ra install-scep clean distclean::
                $(MAKE) $(SUBDIRS) SUBTARGET=$@

# we don't install the common components if we build packages
install-common-parts::
                @if [ $(package_build) != "yes" ]; then \
                        echo installing common components because it is not a 
package build; \
                        $(MAKE) install-common; \
                else \
                        echo not installing common components because it is a 
package build; \
                fi

$(SUBDIRS)::
                cd $@ && $(MAKE) $(SUBTARGET)

########################################################
##               BEGIN CLEANUP STUFF                  ##
########################################################

clean distclean::       clean.local

clean.local::
                @for i in .ca* .ra* .install* .ssl* tmp ; do \
                        if test -e $i ; then rm -rf $i ; fi; \
                done

                # $(RM) -rf .ca* .ra* .install* .ssl* tmp/

distclean::
                @for i in config.status config.cache config.log \
                                        Makefile.global-vars ; do \
                        if test -e $i ; then rm -rf $i ; fi; \
                done

                #$(RM) config.status config.cache config.log
                #$(RM) Makefile.global-vars

########################################################
##                END CLEANUP STUFF                   ##
########################################################

dist snap rpm online offline common::
        @$(MAKE) -s -f Makefile.devel $@
# file: src/Makefile
#
# © 2001 OpenCA Group

TOP     = ..
include $(TOP)/Makefile.global-vars

COMMON_DIR = common
MODULE_DIR = modules
EXT_MODULE_DIR = ext-modules
OCSPD_DIR  = ocspd
SCEP_DIR   = scep
OPENCA_SV  = openca-sv
SCRIPT_DIR = scripts
WEB_DIR    = web-interfaces

SUBDIRS = \
        $(COMMON_DIR)   \
        $(MODULE_DIR)   \
        $(EXT_MODULE_DIR) \
        $(SCRIPT_DIR)   \
        $(WEB_DIR)

#       $(OPTIONAL_C_MODULES)
#       $(OCSPD_DIR)    \
#       $(OPENCA_SV)    

## MODULES.c = \
##      openca-sv \
##      $(OPTIONAL_C_MODULES)

#---- variable settings above, rules below ----

.PHONY: default test install-batch install-ca install-node install-ra 
install-ldap install-common install-modules install-pub install-scep clean 
clean.local distclean

default::       $(SUBDIRS)

$(SUBDIRS)::
                cd $@ && $(MAKE) $(SUBTARGET)

install-common:: install-bin
                @$(MAKE) $(COMMON_DIR) SUBTARGET=install
                @$(MAKE) $(SCRIPT_DIR) SUBTARGET=install
                @## the modules have their own spec-files
                @if [ $(package_build) != "yes" ]; then \
                        echo installing modules because it is not a package 
build; \
                        $(MAKE) $(MODULE_DIR) SUBTARGET=install; \
                        $(MAKE) $(EXT_MODULE_DIR) SUBTARGET=install; \
                else \
                        echo not installing modules because it is a package 
build; \
                fi

#                       $(MAKE) $(OPENCA_SV) SUBTARGET=install; \
#                       if [ x"$(OPTIONAL_C_MODULES)" != x ]; then \
#                          $(MAKE) $(OPTIONAL_C_MODULES) SUBTARGET=install; \
#                       fi

install-bin::
        $(MAKE) $(SCRIPT_DIR) SUBTARGET=install

install-batch install-ca install-node install-ra install-ldap install-pub 
install-scep::
                $(MAKE) $(WEB_DIR) SUBTARGET=$@

install-modules:
        @$(MAKE) $(MODULE_DIR) SUBTARGET=install
        @$(MAKE) $(EXT_MODULE_DIR) SUBTARGET=install

test clean distclean::
                $(MAKE) $(SUBDIRS) SUBTARGET=$@

distclean::
                #$(RM)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]