[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] [Chicken-bugs] #347: incorporate Makefile improvement
From: |
Chicken Scheme |
Subject: |
[Chicken-janitors] [Chicken-bugs] #347: incorporate Makefile improvements reported by Ivan Shmakov |
Date: |
Wed, 31 Oct 2007 07:25:32 -0000 |
#347: incorporate Makefile improvements reported by Ivan Shmakov
------------------+---------------------------------------------------------
Reporter: felix | Owner:
Type: task | Status: new
Priority: minor | Component: build system
Version: 2.7 | Keywords:
------------------+---------------------------------------------------------
{{{
LIBCHICKEN_SHARED_OBJECTS = library$(O) eval$(O) extras$(O)
lolevel$(O) utils$(O) \
tcp$(O) srfi-1$(O) srfi-4$(O) srfi-13$(O) srfi-14$(O) srfi-18$(O) \
$(POSIXFILE)$(O) regex$(O) regex-extras$(O) scheduler$(O)
profiler$(O) stub$(O) match$(O) \
scheduler$(O) profiler$(O) stub$(O) match$(O) runtime$(O)
... Why be so verbose? This could easily be rolled down to:
LIBCHICKEN_SHARED_OBJECTS = patsubst(%, %$(O), library eval extras
lolevel utils tcp srfi-1 srfi-4 srfi-13 srfi-14 srfi-18 $(POSIXFILE)
regex regex-extras scheduler profiler stub match scheduler profiler
stub match runtime)
Likewise for LIBCHICKEN_STATIC_OBJECTS:
LIBCHICKEN_STATIC_OBJECTS = patsubst(%, %-static$(O), library eval
extras lolevel utils tcp srfi-1 srfi-4 srfi-13 srfi-14 srfi-18
$(POSIXFILE) regex regex-extras scheduler profiler stub match runtime)
Noticing a common sublist here, one could squeeze these two even
further (not to a much surprise -- the source code for both
static and dynamically-linked version of Chicken is the same):
LIBCHICKEN_OBJECTS_1 = \
library eval extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \
srfi-14 srfi-18 $(POSIXFILE) regex regex-extras scheduler \
profiler stub match
LIBCHICKEN_SHARED_OBJECTS = \
patsubst(%, %$(O), $(LIBCHICKEN_OBJECTS_1) scheduler profiler
stub match runtime)
LIBCHICKEN_STATIC_OBJECTS = \
patsubst(%, %-static$(O), $(LIBCHICKEN_OBJECTS_1) runtime)
If the duplicate entries aren't really necessary in
LIBCHICKEN_SHARED_OBJECTS (and, I guess, it's the case), it
shortens down to this, much more concise notation:
LIBCHICKEN_OBJECTS_1 = \
library eval extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \
srfi-14 srfi-18 $(POSIXFILE) regex regex-extras scheduler \
profiler stub match runtime
LIBCHICKEN_SHARED_OBJECTS = \
patsubst(%, %$(O), $(LIBCHICKEN_OBJECTS_1))
LIBCHICKEN_STATIC_OBJECTS = \
patsubst(%, %-static$(O), $(LIBCHICKEN_OBJECTS_1))
Performing this kind of optimization through the rules.make, the
following could be obtained:
--cut: rules.make.new--
LIBCHICKEN_OBJECTS_1 = \
library eval extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \
srfi-14 srfi-18 $(POSIXFILE) regex regex-extras scheduler \
profiler stub match runtime
LIBCHICKEN_SHARED_OBJECTS = $(LIBCHICKEN_OBJECTS_1:=$(O))
LIBCHICKEN_STATIC_OBJECTS = $(LIBCHICKEN_OBJECTS_1:=-static$(O))
LIBUCHICKEN_OBJECTS_1 = \
ulibrary ueval uextras ulolevel uutils utcp usrfi-1 usrfi-4 \
usrfi-13 usrfi-14 usrfi-18 u$(POSIXFILE) uregex scheduler \
profiler stub match uruntime
LIBUCHICKEN_SHARED_OBJECTS = $(LIBUCHICKEN_OBJECTS_1:=$(O))
LIBUCHICKEN_STATIC_OBJECTS = $(LIBUCHICKEN_OBJECTS_1:=-static$(O))
LIBCHICKENGUI_OBJECTS_1 = \
library eval extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \
srfi-14 srfi-18 $(POSIXFILE) regex regex-extras scheduler \
profiler stub match gui-runtime
LIBCHICKENGUI_SHARED_OBJECTS = $(LIBCHICKENGUI_OBJECTS_1:=$(O))
LIBCHICKENGUI_STATIC_OBJECTS = $(LIBCHICKENGUI_OBJECTS_1:=-static$(O))
PCRE_OBJECTS_1 = \
pcre/pcre_compile \
pcre/pcre_config \
pcre/pcre_dfa_exec \
pcre/pcre_exec \
pcre/pcre_fullinfo \
pcre/pcre_get \
pcre/pcre_globals \
pcre/pcre_info \
pcre/pcre_maketables \
pcre/pcre_newline \
pcre/pcre_ord2utf8 \
pcre/pcre_refcount \
pcre/pcre_study \
pcre/pcre_tables \
pcre/pcre_try_flipped \
pcre/pcre_ucp_searchfuncs \
pcre/pcre_valid_utf8 \
pcre/pcre_version \
pcre/pcre_xclass \
pcre/pcre_chartables
PCRE_SHARED_OBJECTS = $(PCRE_OBJECTS_1:=$(O))
PCRE_STATIC_OBJECTS = $(PCRE_OBJECTS_1:=-static$(O))
COMPILER_OBJECTS_1 = \
chicken batch-driver compiler optimizer support \
c-platform c-backend
COMPILER_OBJECTS = $(COMPILER_OBJECTS_1:=$(O))
COMPILER_STATIC_OBJECTS = $(COMPILER_OBJECTS_1:=-static$(O))
--cut: rules.make.new--
}}}
--
Ticket URL: <http://trac.callcc.org/ticket/347>
Chicken Scheme <http://www.call-with-current-continuation.org/>
The CHICKEN Scheme-to-C compiler
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-janitors] [Chicken-bugs] #347: incorporate Makefile improvements reported by Ivan Shmakov,
Chicken Scheme <=