1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
default: $(OBJDIR) $(TARGETS) $(DEMOS) $(PROGRAMS)
#-----------------------------------------------------------------------
# You shouldn't need to change anything in this file.
#-----------------------------------------------------------------------
# Create the directory in which the object files will be created.
$(OBJDIR):
mkdir $(OBJDIR)
# Construct the compilation command.
COMPILE = $(CC) -c $(CFLAGS) -o $@
LIB_OBJECTS = $(OBJDIR)/getline.o $(OBJDIR)/keytab.o $(OBJDIR)/freelist.o \
$(OBJDIR)/strngmem.o $(OBJDIR)/hash.o $(OBJDIR)/history.o \
$(OBJDIR)/direader.o $(OBJDIR)/homedir.o $(OBJDIR)/pathutil.o \
$(OBJDIR)/expand.o $(OBJDIR)/stringrp.o $(OBJDIR)/cplfile.o \
$(OBJDIR)/cplmatch.o $(OBJDIR)/pcache.o $(OBJDIR)/version.o \
$(OBJDIR)/chrqueue.o $(OBJDIR)/ioutil.o $(OBJDIR)/errmsg.o
# List the available demonstration programs.
DEMO_PROGS = demo$(SUFFIX) demo2$(SUFFIX) demo3$(SUFFIX)
# List all of the programs that this makefile can build.
PROGS = $(DEMO_PROGS) enhance$(SUFFIX)
static: libtecla$(SUFFIX).a
libtecla$(SUFFIX).a: $(LIB_OBJECTS)
$(AR) -ru $@ $(LIB_OBJECTS); \
$(RANLIB) $@; \
rm -f $(PROGS)
shared: libtecla$(SUFFIX)$(SHARED_EXT)
libtecla$(SUFFIX)$(SHARED_EXT): $(LIB_OBJECTS) $(srcdir)/libtecla.map \
libtecla.map.opt
$(LINK_SHARED)
@endings="$(SHARED_ALT)" ; \
for alt in $$endings ; do \
lnk="libtecla$(SUFFIX)$$alt"; \
echo "rm -f $$lnk; $(LN_S) $@ $$lnk"; \
rm -f $$lnk; $(LN_S) $@ $$lnk; \
done; \
rm -f $(PROGS)
libtecla.map.opt: $(srcdir)/libtecla.map
sed -n 's/^[ ]*\([_a-zA-Z0-9]*\)[ ]*;.*/+e \1/p' $? >$@
demos: $(DEMO_PROGS)
demo$(SUFFIX): $(OBJDIR)/demo.o $(TARGETS)
LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
$(OBJDIR)/demo.o -L. -ltecla$(SUFFIX) $(LIBS)
demo2$(SUFFIX): $(OBJDIR)/demo2.o $(TARGETS)
LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
$(OBJDIR)/demo2.o -L. -ltecla$(SUFFIX) $(LIBS)
demo3$(SUFFIX): $(OBJDIR)/demo3.o $(TARGETS)
LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
$(OBJDIR)/demo3.o -L. -ltecla$(SUFFIX) $(LIBS)
enhance$(SUFFIX): $(OBJDIR)/enhance.o $(TARGETS)
LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
$(OBJDIR)/enhance.o -L. -ltecla$(SUFFIX) $(LIBS)
#-----------------------------------------------------------------------
# Object file dependencies.
#-----------------------------------------------------------------------
$(OBJDIR)/getline.o: $(srcdir)/getline.c $(srcdir)/pathutil.h \
$(srcdir)/libtecla.h $(OBJDIR)/keytab.h $(srcdir)/history.h \
$(srcdir)/freelist.h $(srcdir)/stringrp.h $(srcdir)/getline.h \
$(srcdir)/ioutil.h $(srcdir)/chrqueue.h $(srcdir)/cplmatch.h \
$(srcdir)/expand.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/getline.c
$(OBJDIR)/keytab.o: $(srcdir)/keytab.c $(OBJDIR)/keytab.h \
$(srcdir)/strngmem.h $(srcdir)/getline.h $(srcdir)/errmsg.h \
$(srcdir)/hash.h
$(COMPILE) $(srcdir)/keytab.c
$(OBJDIR)/strngmem.o: $(srcdir)/strngmem.c $(srcdir)/strngmem.h \
$(srcdir)/freelist.h
$(COMPILE) $(srcdir)/strngmem.c
$(OBJDIR)/freelist.o: $(srcdir)/freelist.c $(srcdir)/freelist.h
$(COMPILE) $(srcdir)/freelist.c
$(OBJDIR)/hash.o: $(srcdir)/hash.c $(srcdir)/hash.h $(srcdir)/strngmem.h \
$(srcdir)/freelist.h
$(COMPILE) $(srcdir)/hash.c
$(OBJDIR)/history.o: $(srcdir)/history.c $(srcdir)/ioutil.h \
$(srcdir)/history.h $(srcdir)/freelist.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/history.c
$(OBJDIR)/expand.o: $(srcdir)/expand.c $(srcdir)/freelist.h \
$(srcdir)/direader.h $(srcdir)/pathutil.h $(srcdir)/homedir.h \
$(srcdir)/stringrp.h $(srcdir)/libtecla.h $(srcdir)/ioutil.h \
$(srcdir)/expand.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/expand.c
$(OBJDIR)/direader.o: $(srcdir)/direader.c $(srcdir)/direader.h \
$(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/direader.c
$(OBJDIR)/homedir.o: $(srcdir)/homedir.c $(srcdir)/pathutil.h \
$(srcdir)/homedir.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/homedir.c
$(OBJDIR)/pathutil.o: $(srcdir)/pathutil.c $(srcdir)/pathutil.h
$(COMPILE) $(srcdir)/pathutil.c
$(OBJDIR)/stringrp.o: $(srcdir)/stringrp.c $(srcdir)/freelist.h \
$(srcdir)/stringrp.h
$(COMPILE) $(srcdir)/stringrp.c
$(OBJDIR)/cplfile.o: $(srcdir)/cplfile.c $(srcdir)/libtecla.h \
$(srcdir)/direader.h $(srcdir)/homedir.h $(srcdir)/pathutil.h \
$(srcdir)/cplfile.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/cplfile.c
$(OBJDIR)/cplmatch.o: $(srcdir)/cplmatch.c $(srcdir)/libtecla.h \
$(srcdir)/ioutil.h $(srcdir)/stringrp.h $(srcdir)/pathutil.h \
$(srcdir)/cplfile.h $(srcdir)/cplmatch.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/cplmatch.c
$(OBJDIR)/pcache.o: $(srcdir)/pcache.c $(srcdir)/libtecla.h \
$(srcdir)/pathutil.h $(srcdir)/homedir.h $(srcdir)/freelist.h \
$(srcdir)/direader.h $(srcdir)/stringrp.h $(errmsg.h)
$(COMPILE) $(srcdir)/pcache.c
$(OBJDIR)/demo.o: $(srcdir)/demo.c $(srcdir)/libtecla.h
$(COMPILE) $(srcdir)/demo.c
$(OBJDIR)/demo2.o: $(srcdir)/demo2.c $(srcdir)/libtecla.h
$(COMPILE) $(srcdir)/demo2.c
$(OBJDIR)/demo3.o: $(srcdir)/demo3.c $(srcdir)/libtecla.h
$(COMPILE) $(srcdir)/demo3.c
$(OBJDIR)/version.o: $(srcdir)/version.c $(srcdir)/libtecla.h
$(COMPILE) $(srcdir)/version.c
$(OBJDIR)/enhance.o: $(srcdir)/enhance.c $(srcdir)/libtecla.h
$(COMPILE) $(srcdir)/enhance.c
$(OBJDIR)/chrqueue.o: $(srcdir)/chrqueue.c $(srcdir)/ioutil.h \
$(srcdir)/chrqueue.h $(srcdir)/freelist.h $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/chrqueue.c
$(OBJDIR)/ioutil.o: $(srcdir)/ioutil.c $(srcdir)/ioutil.h
$(COMPILE) $(srcdir)/ioutil.c
$(OBJDIR)/errmsg.o: $(srcdir)/errmsg.c $(srcdir)/errmsg.h
$(COMPILE) $(srcdir)/errmsg.c
#-----------------------------------------------------------------------
# Include file dependencies.
#-----------------------------------------------------------------------
$(OBJDIR)/keytab.h: $(srcdir)/keytab.h $(srcdir)/libtecla.h
cp $(srcdir)/keytab.h $@
|