2 #Copyright (c) 2007, Intel Corp.
5 #Redistribution and use in source and binary forms, with or without
6 #modification, are permitted provided that the following conditions are
9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above
13 # copyright notice, this list of conditions and the following
14 # disclaimer in the documentation and/or other materials provided
15 # with the distribution.
17 # * Neither the name of Intel Corporation nor the names of its
18 # contributors may be used to endorse or promote products derived
19 # from this software without specific prior written permission.
21 #THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 #"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 #LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 #A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 #OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 #SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 #LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 #DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 #THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 #(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 #OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 # Makefile for examples
35 ####################################################################
39 ifeq ($(COMPILER),gnu)
57 #The windows library does not work with cygwin, but in general on cygwin,
59 #CXXFLAGS += -mno-cygwin
60 #CCFLAGS += -mno-cygwin
61 #LDFLAGS += -mno-cygwin
65 # you want MSVS's link, not cygwin's link.
66 # make sure you move cygwin's /bin/link command out of the way!
79 CXXFLAGS = /nologo /EHsc
83 ###################################################################
84 CXXFLAGS += $(IOPT)../include
85 CCFLAGS += $(IOPT)../include
86 LIBXED = ../lib/libxed.${LIBEXT}
88 ###################################################################
89 .PHONY: demos cmdline clean-examples test-xed
92 XED_DEMOS = xed-min xed-tester xed-ex1 xed-ex2 xed-ex3 xed-ex4
94 XED_DEMOS_SUFFIXED= $(XED_DEMOS:%=%$(EXEEXT))
95 XED_SUFFIXED= $(XED:%=%$(EXEEXT))
97 XED_TEST_APPS = ${XED_SUFFIXED} ${XED_DEMOS_SUFFIXED}
99 demos: ${XED_DEMOS_SUFFIXED}
100 cmdline: ${XED_SUFFIXED}
102 ######################################################################
104 %.${OBJEXT}: %.${CXXSRCEXT}
105 ${CXX} ${COPT} ${CXXFLAGS} $< ${OUTOPT}$@
106 %.${OBJEXT}: %.${CCSRCEXT}
107 ${CC} ${COPT} ${CCFLAGS} $< ${OUTOPT}$@
109 ########################################################################
110 XED_CXX_COMMON_OBJ = xed-examples-ostreams.${OBJEXT} xed-enc-lang.${OBJEXT}
111 XED_CC_COMMON_OBJ = xed-examples-util.${OBJEXT}
113 xed-min${EXEEXT}: xed-min.${OBJEXT} ${LIBXED}
114 ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
116 xed-tester${EXEEXT}: xed-tester.${OBJEXT} ${LIBXED}
117 ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
119 xed-ex1${EXEEXT}: xed-ex1.${OBJEXT} ${XED_CC_COMMON_OBJ} ${XED_CXX_COMMON_OBJ} ${LIBXED}
120 ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
122 xed-ex2${EXEEXT}: xed-ex2.${OBJEXT} ${LIBXED}
123 ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
125 xed-ex3${EXEEXT}: xed-ex3.${OBJEXT} ${XED_CC_COMMON_OBJ} ${XED_CXX_COMMON_OBJ} ${LIBXED}
126 ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
128 xed-ex4${EXEEXT}: xed-ex4.${OBJEXT} ${XED_CC_COMMON_OBJ} ${LIBXED}
129 ${CC_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
131 #################################################################
133 XED_OBJ = xed.${OBJEXT}
134 XED_OBJ += xed-disas-macho.${OBJEXT}
135 XED_OBJ += xed-disas-pecoff.${OBJEXT}
136 XED_OBJ += xed-disas-raw.${OBJEXT}
137 XED_OBJ += xed-disas-elf.${OBJEXT}
138 XED_OBJ += ${XED_CC_COMMON_OBJ}
139 XED_OBJ += ${XED_CXX_COMMON_OBJ}
141 xed${EXEEXT}: ${XED_OBJ} ${LIBXED}
142 ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET}
144 #################################################################
147 -${RM} *.o *.obj *.d *.exe > /dev/null 2>&1
148 -${RM} ${XED_TEST_APPS} > /dev/null 2>&1
150 #################################################################