root / JX / trunk / doc / Make.header_template

Revision 3, 3.7 kB (checked in by daboo, 2 years ago)

Full commit of JX-2.5.0 code

Line 
1# To use this file, first run "makemake" and then run "make".
2# (makemake is part of the JX distribution)
3
4# Useful directories
5
6JX_ROOT := ../..
7
8CODEDIR     := ./code
9JCOREDIR    := ${JX_ROOT}/include/jcore
10JXDIR       := ${JX_ROOT}/include/jx
11JTREEDIR    := ${JX_ROOT}/include/jtree
12JTOOLBARDIR := ${JX_ROOT}/include/jtoolbar
13
14JLIBDIR        := ${JX_ROOT}/lib
15JCORELIBDIR    := ${JX_ROOT}/libjcore
16JXLIBDIR       := ${JX_ROOT}/libjx
17JTREELIBDIR    := ${JX_ROOT}/libjtree
18JTOOLBARLIBDIR := ${JX_ROOT}/libjtoolbar
19ACELIBDIR      := ${JX_ROOT}/ACE
20
21# Directories to search for header files
22
23SEARCHDIRS := -I- \
24              -I${CODEDIR} \
25              -I${JCOREDIR} \
26              -I${JXDIR} \
27              -I${JTREEDIR} \
28              -I${JTOOLBARDIR}
29
30# other constants
31
32PROG_NAME         := myprog
33PROG_SIGNATURE    := myprog
34PROG_VERSION      := 1.0.0
35PROG_STRING_FILES := strings/*
36
37# makemake variables
38
39# This is augmented by each *_constants file
40J_STRING_FILES := ${PROG_STRING_FILES}
41
42include ${JX_ROOT}/include/make/jx_constants
43include ${JX_ROOT}/include/make/jtree_constants
44include ${JX_ROOT}/include/make/jtoolbar_constants
45include ${JX_ROOT}/include/make/jx_config
46
47DEPENDFLAGS := ${J_COMPILER_DEPEND_FLAGS} \
48               ${J_COMPILE_DEBUG} ${SEARCHDIRS}
49
50# library dependencies
51
52ifdef J_BUILD_SHARED_LIB
53  LIB_DEPS := ${JLIBDIR}/libjcore-${JX_LIB_VERSION}.so \
54              ${JLIBDIR}/libjx-${JX_LIB_VERSION}.so \
55              ${JLIBDIR}/libjtree-${JTREE_LIB_VERSION}.so \
56              ${JLIBDIR}/libjtoolbar-${JTOOLBAR_LIB_VERSION}.so
57else
58  LIB_DEPS := ${JLIBDIR}/libjcore-${JX_LIB_VERSION}.a \
59              ${JLIBDIR}/libjx-${JX_LIB_VERSION}.a \
60              ${JLIBDIR}/libjtree-${JTREE_LIB_VERSION}.a \
61              ${JLIBDIR}/libjtoolbar-${JTOOLBAR_LIB_VERSION}.a
62endif
63
64# make variables
65
66LOADLIBES := ${J_STD_LIBS}
67LDFLAGS   :=
68
69#####
70
71.PHONY : default
72default: libs ${PROG_NAME}
73
74.PHONY : Makefiles
75Makefiles:
76
77#
78# string data
79#
80
81.PHONY : strings
82strings:
83        compile_jstrings ${J_STRING_FILES} \
84      --code kMyDefaultStringData ${CODEDIR}/myStringData.h
85
86.PHONY : stringdb
87stringdb:
88        compile_jstrings ${J_STRING_FILES} --db ${PROG_SIGNATURE}_us
89
90${PROG_NAME}:: strings
91
92#
93# required libraries
94#
95
96.PHONY : libs
97libs:
98        @cd ${JCORELIBDIR};    ${MAKE}
99        @cd ${JXLIBDIR};       ${MAKE}
100        @cd ${JTREELIBDIR};    ${MAKE}
101        @cd ${JTOOLBARLIBDIR}; ${MAKE}
102
103.PHONY : touch
104touch::
105        @cd ${JCORELIBDIR};    ${MAKE} TOUCHSTRING=${TOUCHSTRING} touch
106        @cd ${JXLIBDIR};       ${MAKE} TOUCHSTRING=${TOUCHSTRING} touch
107        @cd ${JTREELIBDIR};    ${MAKE} TOUCHSTRING=${TOUCHSTRING} touch
108        @cd ${JTOOLBARLIBDIR}; ${MAKE} TOUCHSTRING=${TOUCHSTRING} touch
109
110#
111# install binaries
112#
113
114.PHONY : jxinstall
115jxinstall: ${PROG_NAME}
116        @strip ${call EXE, ${PROG_NAME}}
117  ifneq (${J_WANT_INSTALL},0)
118        @mv ${PROG_NAME} ${JX_INSTALL_ROOT}/
119  endif
120
121.PHONY : jxuninstall
122jxuninstall:
123        @${RM} ${JX_INSTALL_ROOT}/${PROG_NAME}
124
125#
126# source distribution
127#
128
129SRC_TAR_FILE := ${PROG_NAME}_source-${PROG_VERSION}.tar.gz
130SRC_FILE_DIR := ${JX}/programs/${PROG_NAME}
131
132.PHONY : source
133source:
134        @cd ${J_DISTR_TAR_DIR}; \
135     tar -czf ${SRC_TAR_FILE} ${filter-out %.o %~, \
136                                ${shell cd ${J_DISTR_TAR_DIR}; echo \
137              ${addprefix ${SRC_FILE_DIR}/, \
138                README LICENSE FAQ Make.* *.fd \
139                code/* ${PROG_STRING_FILES} rpm/* } }}
140
141#
142# debugging version
143#
144
145DEBUG_LOADLIBES := -L${JLIBDIR} \
146                   -Xlinker -Bstatic \
147                   ${ljtoolbar} ${ljtree} ${ljx} ${ljcore} ${J_ACE_LIBS} \
148                   -Xlinker -Bdynamic \
149                   ${J_X11_LIBS} ${J_GCC_LIBS}
150
151.PHONY : debug
152debug: libs
153        @cd ${ACELIBDIR}; ${MAKE} static
154        @${RM} ${PROG_NAME}
155        @${MAKE} "LOADLIBES=${DEBUG_LOADLIBES}" ${PROG_NAME}
Note: See TracBrowser for help on using the browser.