1 #
   2 # This file and its contents are supplied under the terms of the
   3 # Common Development and Distribution License ("CDDL"), version 1.0.
   4 # You may only use this file in accordance with the terms of version
   5 # 1.0 of the CDDL.
   6 #
   7 # A full copy of the text of the CDDL should have accompanied this
   8 # source.  A copy of the CDDL is also available via the Internet at
   9 # http://www.illumos.org/license/CDDL.
  10 #
  11 
  12 #
  13 # Copyright 2019, Joyent, Inc.
  14 #
  15 
  16 include $(SRC)/Makefile.master
  17 
  18 ROOTOPTPKG = $(ROOT)/opt/util-tests
  19 TESTDIR = $(ROOTOPTPKG)/tests/ctf
  20 
  21 SCRIPTS =       precheck.ksh \
  22                 ctftest.ksh \
  23                 ctftest-convert-non-c.ksh \
  24                 ctftest-convert-no-dwarf.ksh \
  25                 ctftest-merge-no-ctf.ksh \
  26 
  27 TESTS =         test-float.c \
  28                 test-reference.c \
  29                 test-int.c \
  30                 test-array.c \
  31                 test-enum.c \
  32                 test-forward.c \
  33                 test-sou.c \
  34                 test-function.c \
  35                 test-qualifiers.c \
  36                 test-merge-static/Makefile.ctftest \
  37                 test-merge-static/test-a.c \
  38                 test-merge-static/test-b.c \
  39                 test-merge-static/test-c.c \
  40                 test-merge-static/test-d.c \
  41                 test-merge-static/test-main.c \
  42                 test-merge-forward/Makefile.ctftest \
  43                 test-merge-forward/test-impl.c \
  44                 test-merge-forward/test-merge.c \
  45                 test-merge-dedup/Makefile.ctftest \
  46                 test-merge-dedup/test-merge-1.c \
  47                 test-merge-dedup/test-merge-2.c \
  48                 test-merge-dedup/test-merge-3.c \
  49                 test-merge-dedup/test-merge-dedup.c \
  50                 test-merge-reduction/Makefile.ctftest \
  51                 test-merge-reduction/mapfile-vers \
  52                 test-merge-reduction/test-global.c \
  53                 test-merge-reduction/test-scoped.c \
  54                 test-merge-weak/Makefile.ctftest \
  55                 test-merge-weak/test-merge-weak.c \
  56                 test-weak.c \
  57                 Makefile.ctftest.com
  58 
  59 MAKEDIRS =      test-merge-static \
  60                 test-merge-forward \
  61                 test-merge-dedup \
  62                 test-merge-reduction \
  63                 test-merge-weak
  64 
  65 CHECKS =        check-float-32 \
  66                 check-float-64 \
  67                 check-int-32 \
  68                 check-int-64 \
  69                 check-reference \
  70                 check-array \
  71                 check-enum \
  72                 check-sou-32 \
  73                 check-sou-64 \
  74                 check-forward-32 \
  75                 check-forward-64 \
  76                 check-function \
  77                 check-qualifiers \
  78                 check-merge-static \
  79                 check-merge-forward-32 \
  80                 check-merge-forward-64 \
  81                 check-merge-dedup \
  82                 check-merge-reduction \
  83                 check-merge-weak \
  84                 check-weak
  85 
  86 COMMON_OBJS =   check-common.o
  87 ALL_OBJS =      $(CHECKS:%=%.o) $(CHECKS:%-32=%.32.o) $(CHECKS:%-64=%.64.o) $(COMMON_OBJS)
  88 
  89 ROOTTESTS =     $(TESTS:%=$(TESTDIR)/%)
  90 ROOTMAKEDIRS =  $(MAKEDIRS:%=$(TESTDIR)/%)
  91 ROOTCHECKS =    $(CHECKS:%=$(TESTDIR)/%)
  92 ROOTSCRIPTS =   $(SCRIPTS:%.ksh=$(TESTDIR)/%)
  93 
  94 ROOTTESTS       := FILEMODE =   0444
  95 ROOTCHECKS      := FILEMODE =   0555
  96 ROOTSCRIPTS     := FILEMODE =   0555
  97 
  98 include $(SRC)/cmd/Makefile.cmd
  99 include $(SRC)/test/Makefile.com
 100 
 101 CSTD = $(CSTD_GNU99)
 102 
 103 LDLIBS +=       -lctf
 104 
 105 check-merge-static :=   LDLIBS += -lelf
 106 
 107 all: $(CHECKS)
 108 
 109 install: all $(ROOTTESTS) $(ROOTCHECKS) $(ROOTSCRIPTS)
 110 
 111 $(CHECKS): $(COMMON_OBJS)
 112 
 113 clean:
 114         $(RM) $(ALL_OBJS)
 115 
 116 clobber: clean
 117         $(RM) $(CHECKS)
 118 
 119 $(ROOTTESTS): $(TESTDIR) $(ROOTMAKEDIRS) $(TESTS)
 120 $(ROOTCHECKS): $(TESTDIR) $(CHECKS)
 121 $(ROOTSCRIPTS): $(TESTDIR) $(SCRIPTS)
 122 
 123 $(TESTDIR):
 124         $(INS.dir)
 125 
 126 $(ROOTMAKEDIRS):
 127         $(INS.dir)
 128 
 129 $(TESTDIR)/%: %
 130         $(INS.file)
 131 
 132 $(TESTDIR)/%: %.ksh
 133         $(INS.rename)
 134 
 135 %.o: %.c
 136         $(COMPILE.c) -o $@ $<
 137         $(POST_PROCESS_O)
 138 
 139 %.32.o: %.c
 140         $(COMPILE.c) -o $@ $<
 141         $(POST_PROCESS_O)
 142 
 143 %.64.o: %.c
 144         $(COMPILE.c) -DTARGET_LP64 -o $@ $<
 145         $(POST_PROCESS_O)
 146 
 147 %-32: %.32.o
 148         $(LINK.c) -o $@ $< $(COMMON_OBJS) $(LDLIBS)
 149         $(POST_PROCESS)
 150 
 151 %-64: %.64.o
 152         $(LINK.c) -o $@ $< $(COMMON_OBJS) $(LDLIBS)
 153         $(POST_PROCESS)
 154 
 155 %: %.o
 156         $(LINK.c) -o $@ $< $(COMMON_OBJS) $(LDLIBS)
 157         $(POST_PROCESS)