aboutsummaryrefslogblamecommitdiffstats
path: root/lib/kernel/doc/src/Makefile
blob: 70623ab9aa1dea3ff5b465db09c31bdb6770226f (plain) (tree)
1
2
3
4
5
6
7
8
9


                  
                                                       
 


                                                                  
 






                                                                          

                



















                                                      
 

                                                          
                              
                                               
                                                                   

                      
                         
                   

     





                                  
                      













                                  

                          
                               

                              
                                 


                        










                                   




                                  


                     
                                                                      


                       

                                            

                                                              















                                                               


                                                            
 
 
                                                      










                                                           
       
                                                      
            
 
                      
 

                             


                                                      
               

                             
                                




                             
                                 


                                              
                    
                
 

                                     









                                                               
          


                           
                        





                                                         
 
                                          
                                                                 

                                                        
                                                                 

                                               
                                                                 

                                             
                                                                 

                                             


                                                                      


                                                                                  

 

                                                      
                                                      


                                              


                                                              
                                      







                                                                

             
#
# %CopyrightBegin%
#
# Copyright Ericsson AB 1997-2019. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# %CopyrightEnd%
#
include $(ERL_TOP)/make/target.mk
include $(ERL_TOP)/make/$(TARGET)/otp.mk

# ----------------------------------------------------
# Application version
# ----------------------------------------------------
include ../../vsn.mk
VSN=$(KERNEL_VSN)
APPLICATION=kernel

# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------
RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN)

# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
XML_APPLICATION_FILES = ref_man.xml

# The doc build has problems with if-defing out modules...
ifeq ($(USE_ESOCK),yes)
XML_REF3_ESOCK_FILES = net.xml
ESOCK_USE_NET_XML=<xi:include href="net.xml"\/>
ESOCK_USE_NET_SPECS_XML=<xi:include href="../specs/specs_net.xml"/>
else
XML_REF3_ESOCK_FILES =
ESOCK_USE_NET_SPECS_XML =
ESOCK_USE_NET_XML =
endif

XML_REF3_FILES = application.xml \
	auth.xml \
	code.xml \
	disk_log.xml \
	erl_boot_server.xml \
	erl_ddll.xml \
	erl_epmd.xml \
	erl_prim_loader_stub.xml \
	erlang_stub.xml \
	error_handler.xml \
	error_logger.xml \
	file.xml \
	gen_tcp.xml \
	gen_udp.xml \
	gen_sctp.xml \
	global.xml \
	global_group.xml \
	heart.xml \
	inet.xml \
	inet_res.xml \
	init_stub.xml \
        logger.xml \
        logger_std_h.xml \
        logger_disk_log_h.xml \
        logger_filters.xml \
        logger_formatter.xml \
	$(XML_REF3_ESOCK_FILES) \
	net_adm.xml \
	net_kernel.xml \
	os.xml \
	pg2.xml \
	rpc.xml \
	seq_trace.xml \
	wrap_log_reader.xml \
	user.xml \
	zlib_stub.xml

XML_REF4_FILES = app.xml config.xml

XML_REF6_FILES = kernel_app.xml

XML_PART_FILES = part.xml
XML_CHAPTER_FILES = \
        notes.xml \
        introduction_chapter.xml \
	logger_chapter.xml

BOOK_FILES = book.xml

# The .png file is generated from a .dia file with target 'update_png'
IMAGE_FILES = \
	logger_arch.png

XML_FILES = \
	$(BOOK_FILES) $(XML_CHAPTER_FILES) \
	$(XML_PART_FILES) $(XML_REF3_FILES) $(XML_REF4_FILES)\
	$(XML_REF6_FILES) $(XML_APPLICATION_FILES)

# ----------------------------------------------------

HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \
	$(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html)

INFO_FILE = ../../info

MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3)
MAN4_FILES = $(XML_REF4_FILES:%.xml=$(MAN4DIR)/%.4)
MAN6_FILES = $(XML_REF6_FILES:%_app.xml=$(MAN6DIR)/%.6)

HTML_REF_MAN_FILE = $(HTMLDIR)/index.html

TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf

SPECS_FILES = $(XML_REF3_FILES:%.xml=$(SPECDIR)/specs_%.xml)

TOP_SPECS_FILE = specs.xml


# ----------------------------------------------------
# FIGURES
# ----------------------------------------------------
# In order to update the figures you have to have both dia
# and imagemagick installed.
# The generated .png file must be committed.

update_png:
	dia --export=logger_arch.eps logger_arch.dia
	convert logger_arch.eps -resize 65% logger_arch.png

# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
XML_FLAGS +=

SPECS_ESRC = ../../src

SPECS_FLAGS = -I../../include

# ----------------------------------------------------
# Targets
# ----------------------------------------------------
$(HTMLDIR)/%: %
	$(INSTALL_DATA) $< $@

docs: ref_man specs man pdf html

$(TOP_PDF_FILE): $(XML_FILES)

pdf: $(TOP_PDF_FILE)

html: images $(HTML_REF_MAN_FILE)

man: $(MAN3_FILES) $(MAN4_FILES) $(MAN6_FILES)

ref_man: ref_man.xml
specs: specs.xml

images: $(IMAGE_FILES:%=$(HTMLDIR)/%)

info:
	@echo "XML_APPLICATION_FILES: $(XML_APPLICATION_FILES)"
	@echo "XML_REF3_ESOCK_FILES:  $(XML_REF3_ESOCK_FILES)"
	@echo "XML_REF3_FILES:        $(XML_REF3_FILES)"
	@echo "XML_REF4_FILES:        $(XML_REF4_FILES)"
	@echo "XML_REF6_FILES:        $(XML_REF6_FILES)"
	@echo "XML_PART_FILES:        $(XML_PART_FILES)"
	@echo "XML_CHAPTER_FILES:     $(XML_CHAPTER_FILES)"
	@echo "BOOK_FILES:            $(BOOK_FILES)"

debug opt:

clean clean_docs:
	rm -rf $(HTMLDIR)/*
	rm -rf $(XMLDIR)
	rm -f  $(MAN3DIR)/*
	rm -f  $(MAN4DIR)/*
	rm -f  $(MAN6DIR)/*
	rm -f  $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo)
	rm -f  $(SPECDIR)/*
	rm -f  errs core *~ *.eps

$(SPECDIR)/specs_erl_prim_loader_stub.xml:
	$(gen_verbose)escript $(SPECS_EXTRACTOR) $(SPECS_FLAGS) \
                -o$(dir $@) -module erl_prim_loader_stub
$(SPECDIR)/specs_erlang_stub.xml:
	$(gen_verbose)escript $(SPECS_EXTRACTOR) $(SPECS_FLAGS) \
                -o$(dir $@) -module erlang_stub
$(SPECDIR)/specs_init_stub.xml:
	$(gen_verbose)escript $(SPECS_EXTRACTOR) $(SPECS_FLAGS) \
                -o$(dir $@) -module init_stub
$(SPECDIR)/specs_zlib_stub.xml:
	$(gen_verbose)escript $(SPECS_EXTRACTOR) $(SPECS_FLAGS) \
                -o$(dir $@) -module zlib_stub

ref_man.xml: ref_man.xml.src
	($(PERL) -p -e 's?%ESOCK_USE_NET_XML%?$(ESOCK_USE_NET_XML)?' \
            $<) > $@
specs.xml: specs.xml.src
	($(PERL) -p -e 's?%ESOCK_USE_NET_SPECS_XML%?$(ESOCK_USE_NET_SPECS_XML)?' \
            $<) > $@


# ----------------------------------------------------
# Release Target
# ----------------------------------------------------
include $(ERL_TOP)/make/otp_release_targets.mk

release_docs_spec: docs
	$(INSTALL_DIR) "$(RELSYSDIR)/doc/pdf"
	$(INSTALL_DATA) $(TOP_PDF_FILE) "$(RELSYSDIR)/doc/pdf"
	$(INSTALL_DIR) "$(RELSYSDIR)/doc/html"
	$(INSTALL_DATA) $(HTMLDIR)/* \
		"$(RELSYSDIR)/doc/html"
	$(INSTALL_DATA) $(INFO_FILE) "$(RELSYSDIR)"
	$(INSTALL_DIR) "$(RELEASE_PATH)/man/man3"
	$(INSTALL_DATA) $(MAN3DIR)/* "$(RELEASE_PATH)/man/man3"
	$(INSTALL_DIR) "$(RELEASE_PATH)/man/man4"
	$(INSTALL_DATA) $(MAN4_FILES) "$(RELEASE_PATH)/man/man4"
	$(INSTALL_DIR) "$(RELEASE_PATH)/man/man6"
	$(INSTALL_DATA) $(MAN6_FILES) "$(RELEASE_PATH)/man/man6"

release_spec: