| 1 | #
|
|---|
| 2 | # Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
|
|---|
| 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|---|
| 4 | #
|
|---|
| 5 | # This code is free software; you can redistribute it and/or modify it
|
|---|
| 6 | # under the terms of the GNU General Public License version 2 only, as
|
|---|
| 7 | # published by the Free Software Foundation. Oracle designates this
|
|---|
| 8 | # particular file as subject to the "Classpath" exception as provided
|
|---|
| 9 | # by Oracle in the LICENSE file that accompanied this code.
|
|---|
| 10 | #
|
|---|
| 11 | # This code is distributed in the hope that it will be useful, but WITHOUT
|
|---|
| 12 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|---|
| 13 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|---|
| 14 | # version 2 for more details (a copy is included in the LICENSE file that
|
|---|
| 15 | # accompanied this code).
|
|---|
| 16 | #
|
|---|
| 17 | # You should have received a copy of the GNU General Public License version
|
|---|
| 18 | # 2 along with this work; if not, write to the Free Software Foundation,
|
|---|
| 19 | # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|---|
| 20 | #
|
|---|
| 21 | # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|---|
| 22 | # or visit www.oracle.com if you need additional information or have any
|
|---|
| 23 | # questions.
|
|---|
| 24 | #
|
|---|
| 25 |
|
|---|
| 26 | BUILDDIR = ../..
|
|---|
| 27 | PACKAGE = sun.awt.X11
|
|---|
| 28 | LIBRARY = mawt
|
|---|
| 29 | LIBRARY_OUTPUT = xawt
|
|---|
| 30 | LIB_LOCATION = $(LIBDIR)/$(LIBARCH)/xawt
|
|---|
| 31 | PRODUCT = sun
|
|---|
| 32 |
|
|---|
| 33 | include $(BUILDDIR)/common/Defs.gmk
|
|---|
| 34 |
|
|---|
| 35 | GEN_DIR=$(GENSRCDIR)/sun/awt/X11
|
|---|
| 36 |
|
|---|
| 37 | CLASSES_INIT += $(TEMPDIR)/.gen.wrappers $(TEMPDIR)/.gen_icons touch.wrappers
|
|---|
| 38 |
|
|---|
| 39 | .PHONY: generated.clean
|
|---|
| 40 |
|
|---|
| 41 | #
|
|---|
| 42 | # Files
|
|---|
| 43 | #
|
|---|
| 44 | include FILES_c_unix.gmk
|
|---|
| 45 | include FILES_export_unix.gmk
|
|---|
| 46 | AUTO_FILES_JAVA_DIRS = sun/awt/X11
|
|---|
| 47 | AUTO_JAVA_PRUNE = WrapperGenerator.java
|
|---|
| 48 |
|
|---|
| 49 | LDFLAGS += -L$(OPENWIN_LIB)
|
|---|
| 50 |
|
|---|
| 51 | ifeq ($(PLATFORM), linux)
|
|---|
| 52 | LDFLAGS += -lpthread
|
|---|
| 53 | dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
|
|---|
| 54 | endif
|
|---|
| 55 |
|
|---|
| 56 | # Since this library will be living in a subdirectory below the other libraries
|
|---|
| 57 | # we need to add an extra runpath so that libraries in the upper directory
|
|---|
| 58 | # are found at runtime.
|
|---|
| 59 | LD_RUNPATH_EXTRAS = ..
|
|---|
| 60 |
|
|---|
| 61 | #
|
|---|
| 62 | # Rules.
|
|---|
| 63 | #
|
|---|
| 64 | include $(BUILDDIR)/common/Mapfile-vers.gmk
|
|---|
| 65 | include $(BUILDDIR)/common/Library.gmk
|
|---|
| 66 |
|
|---|
| 67 | #
|
|---|
| 68 | # Add to the ambient vpath to pick up files in subdirectories
|
|---|
| 69 | #
|
|---|
| 70 | vpath %.c $(SHARE_SRC)/native/sunawt/alphacomposite
|
|---|
| 71 | vpath %.c $(PLATFORM_SRC)/native/sun/xawt
|
|---|
| 72 | vpath %.c $(PLATFORM_SRC)/native/sun/awt
|
|---|
| 73 | vpath %.c $(SHARE_SRC)/native/sun/awt/debug
|
|---|
| 74 | vpath %.c $(SHARE_SRC)/native/sun/awt/image
|
|---|
| 75 | vpath %.c $(SHARE_SRC)/native/sun/awt/image/gif
|
|---|
| 76 | vpath %.c $(SHARE_SRC)/native/sun/awt/image/cvutils
|
|---|
| 77 | vpath %.c $(SHARE_SRC)/native/sun/awt/shell
|
|---|
| 78 | vpath %.c $(SHARE_SRC)/native/sun/java2d
|
|---|
| 79 | vpath %.c $(SHARE_SRC)/native/sun/java2d/loops
|
|---|
| 80 | vpath %.c $(SHARE_SRC)/native/sun/java2d/pipe
|
|---|
| 81 | vpath %.c $(SHARE_SRC)/native/sun/awt/medialib
|
|---|
| 82 | vpath %.cpp $(SHARE_SRC)/native/sun/image
|
|---|
| 83 | vpath %.c $(SHARE_SRC)/native/sun/font
|
|---|
| 84 | vpath %.c $(PLATFORM_SRC)/native/sun/awt/robot_child
|
|---|
| 85 | vpath %.c $(SHARE_SRC)/native/sun/java2d/opengl
|
|---|
| 86 | vpath %.c $(PLATFORM_SRC)/native/sun/java2d/opengl
|
|---|
| 87 | vpath %.c $(PLATFORM_SRC)/native/sun/java2d/x11
|
|---|
| 88 |
|
|---|
| 89 | OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
|
|---|
| 90 | $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
|
|---|
| 91 |
|
|---|
| 92 | ifeq ($(PLATFORM), solaris)
|
|---|
| 93 | CPPFLAGS += -DFUNCPROTO=15
|
|---|
| 94 | dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
|
|---|
| 95 | endif
|
|---|
| 96 |
|
|---|
| 97 | CPPFLAGS += -I$(CUPS_HEADERS_PATH)
|
|---|
| 98 |
|
|---|
| 99 | CPPFLAGS += -DXAWT -DXAWT_HACK \
|
|---|
| 100 | -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
|
|---|
| 101 | -I$(PLATFORM_SRC)/native/sun/awt \
|
|---|
| 102 | -I$(PLATFORM_SRC)/native/sun/xawt \
|
|---|
| 103 | -I$(PLATFORM_SRC)/native/sun/jdga \
|
|---|
| 104 | -I$(SHARE_SRC)/native/sun/awt/debug \
|
|---|
| 105 | -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
|
|---|
| 106 | -I$(SHARE_SRC)/native/sun/java2d \
|
|---|
| 107 | -I$(SHARE_SRC)/native/sun/java2d/loops \
|
|---|
| 108 | -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
|
|---|
| 109 | -I$(SHARE_SRC)/native/sun/awt/image \
|
|---|
| 110 | -I$(SHARE_SRC)/native/sun/font \
|
|---|
| 111 | -I$(PLATFORM_SRC)/native/sun/java2d \
|
|---|
| 112 | -I$(SHARE_SRC)/native/sun/java2d/pipe \
|
|---|
| 113 | -I$(SHARE_SRC)/native/sun/java2d/opengl \
|
|---|
| 114 | -I$(PLATFORM_SRC)/native/sun/java2d/opengl \
|
|---|
| 115 | -I$(PLATFORM_SRC)/native/sun/java2d/x11 \
|
|---|
| 116 | -I$(SHARE_SRC)/native/sun/dc/path \
|
|---|
| 117 | -I$(SHARE_SRC)/native/sun/dc/doe \
|
|---|
| 118 | -I$(SHARE_SRC)/native/sun/awt/alphacomposite \
|
|---|
| 119 | -I$(SHARE_SRC)/native/sun/awt/medialib \
|
|---|
| 120 | -I$(PLATFORM_SRC)/native/sun/awt/medialib \
|
|---|
| 121 | -I$(PLATFORM_SRC)/native/sun/font \
|
|---|
| 122 | -I$(SHARE_SRC)/native/sun/awt \
|
|---|
| 123 | -I$(PLATFORM_SRC)/native/sun/awt
|
|---|
| 124 |
|
|---|
| 125 | ifeq ($(PLATFORM), linux)
|
|---|
| 126 | # Allows for builds on Debian GNU Linux, X11 is in a different place
|
|---|
| 127 | CPPFLAGS += -I/usr/X11R6/include/X11/extensions \
|
|---|
| 128 | -I/usr/include/X11/extensions \
|
|---|
| 129 | -I$(MOTIF_DIR)/include \
|
|---|
| 130 | -I$(OPENWIN_HOME)/include
|
|---|
| 131 | endif
|
|---|
| 132 |
|
|---|
| 133 | ifeq ($(PLATFORM), solaris)
|
|---|
| 134 | CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions -I$(MOTIF_DIR)/include
|
|---|
| 135 | endif
|
|---|
| 136 |
|
|---|
| 137 | ifeq ($(MILESTONE), internal)
|
|---|
| 138 | CPPFLAGS += -DINTERNAL_BUILD
|
|---|
| 139 | endif
|
|---|
| 140 |
|
|---|
| 141 | #LDFLAGS_OPT += -L../../../build/solaris-sparc/lib/sparc/motif21 -lmawt_g -lXext -lXm -lXt -ldl
|
|---|
| 142 |
|
|---|
| 143 | #
|
|---|
| 144 | # Generation of wrappers
|
|---|
| 145 | #
|
|---|
| 146 | SIZER_DIR=$(GEN_DIR)/generator
|
|---|
| 147 | SIZER = $(SIZER_DIR)/sizer
|
|---|
| 148 | SIZER_32_C = $(SIZER).32.c
|
|---|
| 149 | SIZER_64_C = $(SIZER).64.c
|
|---|
| 150 | CFLAGS_32=$(CFLAGS)
|
|---|
| 151 | CFLAGS_64=$(CFLAGS)
|
|---|
| 152 |
|
|---|
| 153 | ifeq ($(PLATFORM), solaris)
|
|---|
| 154 |
|
|---|
| 155 | isalist:=$(shell $(ISAINFO))
|
|---|
| 156 |
|
|---|
| 157 | ifneq (,$(findstring sparcv9, $(isalist)))
|
|---|
| 158 | # On sparcv9 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
|
|---|
| 159 | # On sparcv9 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
|
|---|
| 160 | CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
|
|---|
| 161 | SIZERS = $(SIZER).32 $(SIZER).64
|
|---|
| 162 | SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
|
|---|
| 163 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
|
|---|
| 164 | CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
|
|---|
| 165 | else
|
|---|
| 166 | ifneq (,$(findstring amd64, $(isalist)))
|
|---|
| 167 | # On amd64 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
|
|---|
| 168 | # On amd64 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
|
|---|
| 169 | CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
|
|---|
| 170 | SIZERS = $(SIZER).32 $(SIZER).64
|
|---|
| 171 | SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
|
|---|
| 172 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
|
|---|
| 173 | CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
|
|---|
| 174 | else # !sparcv9 : includes (32-bit) sparc, i586
|
|---|
| 175 | SIZERS = $(SIZER).32
|
|---|
| 176 | SIZERS_C = $(SIZER_32_C)
|
|---|
| 177 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
|
|---|
| 178 | endif # amd64
|
|---|
| 179 | endif # sparcv9
|
|---|
| 180 |
|
|---|
| 181 | else # !solaris
|
|---|
| 182 |
|
|---|
| 183 | ifeq ($(ARCH_DATA_MODEL), 32)
|
|---|
| 184 | SIZERS = $(SIZER).32
|
|---|
| 185 | SIZERS_C = $(SIZER_32_C)
|
|---|
| 186 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
|
|---|
| 187 | else # !32
|
|---|
| 188 | SIZERS = $(SIZER).64
|
|---|
| 189 | SIZERS_C = $(SIZER_64_C)
|
|---|
| 190 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
|
|---|
| 191 | endif # 32
|
|---|
| 192 |
|
|---|
| 193 | endif # solaris
|
|---|
| 194 |
|
|---|
| 195 | # XXX Hack for 6185483 - use hard-coded sizes.
|
|---|
| 196 | # Add the 64-bit platforms that need to be included into 32-bit build
|
|---|
| 197 | # and have sizes.64-$(PLATFORM)-$(LIBARCH) hardcoded in the workspace
|
|---|
| 198 | ifeq ($(PLATFORM)-$(LIBARCH), solaris-i386)
|
|---|
| 199 | # If you define DOHACK=true for some combination of $(PLATFORM)-$(LIBARCH),
|
|---|
| 200 | # make sure you have sizes.64-$(PLATFORM)-$(LIBARCH) pre-generated in
|
|---|
| 201 | # $(PLATFORM_SRC)/classes/sun/awt/X11/generator/
|
|---|
| 202 | DOHACK=true
|
|---|
| 203 | endif # Hack
|
|---|
| 204 |
|
|---|
| 205 | ifeq ($(DOHACK), true)
|
|---|
| 206 | PREDEFINED_SIZES_TMPL=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-$(PLATFORM)-$(LIBARCH)
|
|---|
| 207 | PREDEFINED_SIZES=$(WRAPPER_GENERATOR_DIR)/sizes.64
|
|---|
| 208 | SIZES += $(WRAPPER_GENERATOR_DIR)/sizes.64
|
|---|
| 209 | endif
|
|---|
| 210 |
|
|---|
| 211 | ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
|
|---|
| 212 | DOCOMPARE=true
|
|---|
| 213 | endif
|
|---|
| 214 | # 64 bit sizers are generated on platform-libarch (left) for use
|
|---|
| 215 | # on platform-libarch (right) and stored under the latter name.
|
|---|
| 216 | # Do compare manually stored and automatically generated pair(s)
|
|---|
| 217 | # if DOCOMPARE=true, just after the generation.
|
|---|
| 218 | STORED_SIZES_TMPL_solaris_amd64=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-solaris-i386
|
|---|
| 219 |
|
|---|
| 220 | WRAPPER_GENERATOR_JAVA=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/WrapperGenerator.java
|
|---|
| 221 | WRAPPER_GENERATOR_DIR=$(GENSRCDIR)/sun/awt/X11/generator
|
|---|
| 222 | WRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
|
|---|
| 223 | WRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class
|
|---|
| 224 | XLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt
|
|---|
| 225 |
|
|---|
| 226 | $(SIZERS): $(SIZERS_C)
|
|---|
| 227 | $(prep-target)
|
|---|
| 228 | $(CC) $(CFLAGS_$(subst .,,$(suffix $@))) $(CPPFLAGS) -o $@ $(SIZER)$(suffix $@).c
|
|---|
| 229 |
|
|---|
| 230 | $(WRAPPER_GENERATOR_CLASS): $(WRAPPER_GENERATOR_JAVA)
|
|---|
| 231 | $(prep-target)
|
|---|
| 232 | $(BOOT_JAVAC_CMD) -d $(WRAPPER_GENERATOR_TEMPDIR) $(WRAPPER_GENERATOR_JAVA)
|
|---|
| 233 |
|
|---|
| 234 | $(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
|
|---|
| 235 | $(prep-target)
|
|---|
| 236 | $(MKDIR) -p $(WRAPPER_GENERATOR_TEMPDIR)
|
|---|
| 237 | $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
|
|---|
| 238 | $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
|
|---|
| 239 |
|
|---|
| 240 | $(SIZES): $(SIZERS)
|
|---|
| 241 | @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
|
|---|
| 242 | $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
|
|---|
| 243 | $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
|
|---|
| 244 | $(CHMOD) +w $@;\
|
|---|
| 245 | else \
|
|---|
| 246 | $(ECHO) GENERATING $@; \
|
|---|
| 247 | $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
|
|---|
| 248 | fi
|
|---|
| 249 | @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
|
|---|
| 250 | $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
|
|---|
| 251 | $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
|
|---|
| 252 | fi
|
|---|
| 253 |
|
|---|
| 254 | $(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
|
|---|
| 255 | $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
|
|---|
| 256 | $(GEN_DIR) $(XLIBTYPES) "gen" $(WRAPPER_GENERATOR_DIR)/sizes
|
|---|
| 257 |
|
|---|
| 258 | touch.wrappers: $(TEMPDIR)/.gen.wrappers
|
|---|
| 259 | $(MKDIR) -p $(TEMPDIR)
|
|---|
| 260 | $(TOUCH) $(TEMPDIR)/.gen.wrappers
|
|---|
| 261 |
|
|---|
| 262 | generated.clean:
|
|---|
| 263 | $(RM) -r $(WRAPPER_GENERATOR_TEMPDIR)
|
|---|
| 264 | $(RM) -r $(WRAPPER_GENERATOR_DIR)
|
|---|
| 265 | $(RM) -r $(GEN_DIR)/*.java
|
|---|
| 266 |
|
|---|
| 267 | ifdef OPENJDK
|
|---|
| 268 | ICONS_PATH_PREFIX=$(PLATFORM_SRC)
|
|---|
| 269 | else
|
|---|
| 270 | ICONS_PATH_PREFIX=$(CLOSED_SRC)/solaris
|
|---|
| 271 | endif
|
|---|
| 272 |
|
|---|
| 273 | ICONS = \
|
|---|
| 274 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
|
|---|
| 275 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
|
|---|
| 276 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
|
|---|
| 277 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
|
|---|
| 278 |
|
|---|
| 279 | TEMPDIR_CLASSES = $(TEMPDIR)/classes
|
|---|
| 280 |
|
|---|
| 281 | $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
|
|---|
| 282 | @$(prep-target)
|
|---|
| 283 | $(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $<
|
|---|
| 284 |
|
|---|
| 285 | $(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS)
|
|---|
| 286 | $(prep-target)
|
|---|
| 287 | for i in $(ICONS); do \
|
|---|
| 288 | filename=`basename $$i`; \
|
|---|
| 289 | name=`$(ECHO) $$filename | $(TR) '\-.' '__'`; \
|
|---|
| 290 | classname=$(GEN_DIR)/XAWTIcon32_$$name.java; \
|
|---|
| 291 | $(RM) $$classname; \
|
|---|
| 292 | $(ECHO) "package sun.awt.X11;" >> $$classname ; \
|
|---|
| 293 | $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \
|
|---|
| 294 | $(ECHO) "public static int[] $$name = { " >> $$classname; \
|
|---|
| 295 | $(CAT) $$i | \
|
|---|
| 296 | $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \
|
|---|
| 297 | -Dawt.toolkit=sun.awt.motif.MToolkit \
|
|---|
| 298 | -Djava.awt.headless=true \
|
|---|
| 299 | sun.awt.X11.ToBin >> $$classname; \
|
|---|
| 300 | $(ECHO) "}; }" >> $$classname; \
|
|---|
| 301 | classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \
|
|---|
| 302 | $(RM) $$classname; \
|
|---|
| 303 | $(ECHO) "package sun.awt.X11;" >> $$classname ; \
|
|---|
| 304 | $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \
|
|---|
| 305 | $(ECHO) "public static long[] $$name = { " >> $$classname; \
|
|---|
| 306 | $(CAT) $$i | \
|
|---|
| 307 | $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \
|
|---|
| 308 | -Dawt.toolkit=sun.awt.motif.MToolkit \
|
|---|
| 309 | -Djava.awt.headless=true \
|
|---|
| 310 | sun.awt.X11.ToBin >> $$classname; \
|
|---|
| 311 | $(ECHO) "}; }" >> $$classname; \
|
|---|
| 312 | done
|
|---|
| 313 | $(TOUCH) $@
|
|---|
| 314 |
|
|---|
| 315 | clean clobber:: generated.clean
|
|---|
| 316 |
|
|---|
| 317 | .PHONY: generated.clean robot_child
|
|---|
| 318 |
|
|---|