!endif
WXDIR = $(WXWIN)
+
+# Set all these to 1 if you want to build a dynamic library
+!if "$(DLL)" == "1"
+WXMAKINGDLL=1
+WXBUILDDLL=1
+!endif
+
!include $(WXDIR)\src\makeb32.env
# Please set these according to the settings in wx_setup.h, so we can include
PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET)
!endif
-LIBTARGET= $(WXLIBDIR)\wx32.lib
+PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\jpeg.lib $(PERIPH_LIBS)
+PERIPH_TARGET=zlib png jpeg $(PERIPH_TARGET)
+PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg $(PERIPH_CLEAN_TARGET)
+
+!if "$(DLL)" == "0"
DUMMY=dummy
+!else
+DUMMY=dummydll
+LIBS= cw32 import32 ole2w32
+!endif
+
+LIBTARGET=$(WXLIB)
GENDIR=..\generic
COMMDIR=..\common
GENERICOBJS= \
$(MSWDIR)\choicdgg.obj \
- $(MSWDIR)\colrdlgg.obj \
- $(MSWDIR)\fontdlgg.obj \
$(MSWDIR)\gridg.obj \
- $(MSWDIR)\helpxlp.obj \
- $(MSWDIR)\msgdlgg.obj \
+ $(MSWDIR)\laywin.obj \
$(MSWDIR)\panelg.obj \
- $(MSWDIR)\printps.obj \
- $(MSWDIR)\prntdlgg.obj \
+ $(MSWDIR)\prop.obj \
+ $(MSWDIR)\proplist.obj \
+ $(MSWDIR)\propform.obj \
+ $(MSWDIR)\sashwin.obj \
$(MSWDIR)\scrolwin.obj \
$(MSWDIR)\splitter.obj \
$(MSWDIR)\statusbr.obj \
$(MSWDIR)\tabg.obj \
- $(MSWDIR)\textdlgg.obj
+ $(MSWDIR)\textdlgg.obj \
+
+# Not needed:
+# $(MSWDIR)\colrdlgg.obj \
+# $(MSWDIR)\fontdlgg.obj \
+# $(MSWDIR)\helpxlp.obj \
+# $(MSWDIR)\msgdlgg.obj \
+# $(MSWDIR)\printps.obj \
+# $(MSWDIR)\prntdlgg.obj \
+# $(MSWDIR)\listctrl.obj \
+# $(MSWDIR)\notebook.obj \
+# $(MSWDIR)\treectrl.obj
COMMONOBJS = \
$(MSWDIR)\config.obj \
$(MSWDIR)\cmndata.obj \
$(MSWDIR)\docview.obj \
+ $(MSWDIR)\docmdi.obj \
$(MSWDIR)\dynarray.obj \
$(MSWDIR)\event.obj \
$(MSWDIR)\file.obj \
$(MSWDIR)\fileconf.obj \
$(MSWDIR)\filefn.obj \
+ $(MSWDIR)\framecmn.obj \
$(MSWDIR)\gdicmn.obj \
$(MSWDIR)\helpbase.obj \
+ $(MSWDIR)\image.obj \
+ $(MSWDIR)\imagpng.obj \
+ $(MSWDIR)\imagjpeg.obj \
+ $(MSWDIR)\imaggif.obj \
$(MSWDIR)\intl.obj \
$(MSWDIR)\ipcbase.obj \
$(MSWDIR)\log.obj \
$(MSWDIR)\layout.obj \
$(MSWDIR)\memory.obj \
+ $(MSWDIR)\mimetype.obj \
$(MSWDIR)\module.obj \
$(MSWDIR)\object.obj \
- $(MSWDIR)\odbc.obj \
- $(MSWDIR)\postscrp.obj \
$(MSWDIR)\prntbase.obj \
$(MSWDIR)\resource.obj \
$(MSWDIR)\tbarbase.obj \
$(MSWDIR)\timercmn.obj \
$(MSWDIR)\utilscmn.obj \
$(MSWDIR)\validate.obj \
+ $(MSWDIR)\valgen.obj \
$(MSWDIR)\valtext.obj \
+ $(MSWDIR)\variant.obj \
$(MSWDIR)\date.obj \
$(MSWDIR)\hash.obj \
$(MSWDIR)\list.obj \
+ $(MSWDIR)\paper.obj \
$(MSWDIR)\string.obj \
$(MSWDIR)\time.obj \
$(MSWDIR)\wxexpr.obj \
- $(MSWDIR)\y_tab.obj
-
+ $(MSWDIR)\y_tab.obj \
+ $(MSWDIR)\stream.obj \
+ $(MSWDIR)\wfstream.obj \
+ $(MSWDIR)\mstream.obj \
+ $(MSWDIR)\zstream.obj \
+ $(MSWDIR)\datstrm.obj \
+ $(MSWDIR)\sckstrm.obj \
+ $(MSWDIR)\extended.obj \
+ $(MSWDIR)\wincmn.obj \
+ $(MSWDIR)\objstrm.obj \
+ $(MSWDIR)\dynlib.obj \
+ $(MSWDIR)\tokenzr.obj \
+ $(MSWDIR)\socket.obj \
+ $(MSWDIR)\sckint.obj \
+ $(MSWDIR)\sckaddr.obj \
+ $(MSWDIR)\protocol.obj \
+ $(MSWDIR)\url.obj \
+ $(MSWDIR)\http.obj \
+ $(MSWDIR)\ftp.obj \
+ $(MSWDIR)\sckfile.obj \
+ $(MSWDIR)\sckipc.obj \
+ $(MSWDIR)\wxchar.obj
+
+# $(MSWDIR)\odbc.obj \
# $(MSWDIR)\matrix.obj \
MSWOBJS = \
+ $(MSWDIR)\accel.obj \
$(MSWDIR)\app.obj \
$(MSWDIR)\bitmap.obj \
$(MSWDIR)\bmpbuttn.obj \
$(MSWDIR)\dde.obj \
$(MSWDIR)\dialog.obj \
$(MSWDIR)\dib.obj \
+ $(MSWDIR)\dibutils.obj \
$(MSWDIR)\dirdlg.obj \
$(MSWDIR)\filedlg.obj \
$(MSWDIR)\font.obj \
$(MSWDIR)\fontdlg.obj \
$(MSWDIR)\frame.obj \
- $(MSWDIR)\gauge.obj \
+ $(MSWDIR)\gauge95.obj \
+ $(MSWDIR)\gaugemsw.obj \
$(MSWDIR)\gdiobj.obj \
$(MSWDIR)\helpwin.obj \
$(MSWDIR)\icon.obj \
$(MSWDIR)\minifram.obj \
$(MSWDIR)\msgdlg.obj \
$(MSWDIR)\nativdlg.obj \
+ $(MSWDIR)\notebook.obj \
$(MSWDIR)\ownerdrw.obj \
$(MSWDIR)\palette.obj \
$(MSWDIR)\pen.obj \
$(MSWDIR)\penwin.obj \
+ $(MSWDIR)\pnghand.obj \
$(MSWDIR)\printdlg.obj \
$(MSWDIR)\printwin.obj \
$(MSWDIR)\radiobox.obj \
$(MSWDIR)\radiobut.obj \
$(MSWDIR)\region.obj \
$(MSWDIR)\registry.obj \
+ $(MSWDIR)\regconf.obj \
$(MSWDIR)\scrolbar.obj \
$(MSWDIR)\settings.obj \
- $(MSWDIR)\slider.obj \
+ $(MSWDIR)\slidrmsw.obj \
+ $(MSWDIR)\slider95.obj \
$(MSWDIR)\spinbutt.obj \
$(MSWDIR)\statbmp.obj \
$(MSWDIR)\statbox.obj \
- $(MSWDIR)\statbr95.obj \
$(MSWDIR)\stattext.obj \
+ $(MSWDIR)\statbr95.obj \
$(MSWDIR)\tabctrl.obj \
- $(MSWDIR)\taskbar.obj \
- $(MSWDIR)\tbar95.obj \
$(MSWDIR)\tbarmsw.obj \
$(MSWDIR)\textctrl.obj \
$(MSWDIR)\thread.obj \
$(MSWDIR)\timer.obj \
+ $(MSWDIR)\tooltip.obj \
$(MSWDIR)\treectrl.obj \
+ $(MSWDIR)\taskbar.obj \
+ $(MSWDIR)\tbar95.obj \
$(MSWDIR)\utils.obj \
+ $(MSWDIR)\utilsexc.obj \
$(MSWDIR)\wave.obj \
$(MSWDIR)\window.obj \
+ $(MSWDIR)\xpmhand.obj \
$(MSWDIR)\droptgt.obj \
+ $(MSWDIR)\dropsrc.obj \
$(MSWDIR)\oleutils.obj \
+ $(MSWDIR)\dataobj.obj \
$(MSWDIR)\uuid.obj
+# Unfortunately this causes a crash when the oleauto sample starts.
+# $(MSWDIR)\automtn.obj
+
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
default: wx
all: all_libs all_execs
-$(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(BASEOBJECTS)
- erase $(LIBTARGET)
+!if "$(DLL)" == "0"
+
+$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
+ -erase $(LIBTARGET)
tlib $(LIBTARGET) /P512 @&&!
--+$(OBJECTS:.obj =.obj -+) -+$(BASEOBJECTS:.obj =.obj -+) -+$(PERIPH_LIBS:.lib =.lib -+)
++$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +)
+!
+
+!else
+
+$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
+ -erase $(LIBTARGET)
+ -erase $(WXLIBDIR)\wx.dll
+ tlink32 $(LINK_FLAGS) /v @&&!
+c0d32.obj $(OBJECTS)
+$(WXLIBDIR)\wx
+nul
+$(PERIPH_LIBS) $(LIBS)
+wxb32
!
+ implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll
+
+!endif
dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
#$(OBJECTS): $(WXDIR)\include\wx\setup.h
+$(MSWDIR)\accel.obj: $(MSWDIR)\accel.$(SRCSUFF)
+
$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF)
$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF)
$(MSWDIR)\frame.obj: $(MSWDIR)\frame.$(SRCSUFF)
-$(MSWDIR)\gauge.obj: $(MSWDIR)\gauge.$(SRCSUFF)
+$(MSWDIR)\gaugemsw.obj: $(MSWDIR)\gaugemsw.$(SRCSUFF)
+
+$(MSWDIR)\gauge95.obj: $(MSWDIR)\gauge95.$(SRCSUFF)
$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF)
$(MSWDIR)\nativdlg.obj: $(MSWDIR)\nativdlg.$(SRCSUFF)
+$(MSWDIR)\notebook.obj: $(MSWDIR)\notebook.$(SRCSUFF)
+
$(MSWDIR)\ownerdrw.obj: $(MSWDIR)\ownerdrw.$(SRCSUFF)
$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF)
$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF)
+$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF)
+
$(MSWDIR)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF)
$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF)
-$(MSWDIR)\slider.obj: $(MSWDIR)\slider.$(SRCSUFF)
+$(MSWDIR)\slidrmsw.obj: $(MSWDIR)\slidrmsw.$(SRCSUFF)
+
+$(MSWDIR)\slider95.obj: $(MSWDIR)\slider95.$(SRCSUFF)
$(MSWDIR)\spinbutt.obj: $(MSWDIR)\spinbutt.$(SRCSUFF)
$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF)
+$(MSWDIR)\tooltip.obj: $(MSWDIR)\tooltip.$(SRCSUFF)
+
$(MSWDIR)\treectrl.obj: $(MSWDIR)\treectrl.$(SRCSUFF)
$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF)
+$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF)
+
$(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF)
$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF)
$(MSWDIR)\droptgt.obj: $(OLEDIR)\droptgt.$(SRCSUFF)
+$(MSWDIR)\dropsrc.obj: $(OLEDIR)\dropsrc.$(SRCSUFF)
+
+$(MSWDIR)\dataobj.obj: $(OLEDIR)\dataobj.$(SRCSUFF)
+
$(MSWDIR)\oleutils.obj: $(OLEDIR)\oleutils.$(SRCSUFF)
$(MSWDIR)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF)
+$(MSWDIR)\automtn.obj: $(OLEDIR)\automtn.$(SRCSUFF)
+
########################################################
# Common objects (always compiled)
$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF)
+$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF)
+
$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF)
+$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF)
+
$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF)
$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF)
$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF)
+$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF)
+
$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF)
+$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF)
+
+$(MSWDIR)\imagpng.obj: $(COMMDIR)\imagpng.$(SRCSUFF)
+
+$(MSWDIR)\imagjpeg.obj: $(COMMDIR)\imagjpeg.$(SRCSUFF)
+
+$(MSWDIR)\imaggif.obj: $(COMMDIR)\imaggif.$(SRCSUFF)
+
+$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF)
+
$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF)
$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF)
$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF)
+$(MSWDIR)\mimetype.obj: $(COMMDIR)\mimetype.$(SRCSUFF)
+
$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF)
$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF)
$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF)
-$(MSWDIR)\postscrp.obj: $(COMMDIR)\postscrp.$(SRCSUFF)
-
$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF)
$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF)
$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF)
+$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF)
+
$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF)
$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF)
$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF)
+$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF)
+
$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF)
+$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF)
+
$(MSWDIR)\matrix.obj: $(COMMDIR)\matrix.$(SRCSUFF)
$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF)
+$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF)
+
+$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF)
+
+$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF)
+
+$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
+
+$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF)
+
+$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF)
+
+$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF)
+
+$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF)
+
+$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c
+
+$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF)
+
+$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF)
+
+$(MSWDIR)\sckint.obj: $(COMMDIR)\sckint.$(SRCSUFF)
+
+$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF)
+
+$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF)
+
+$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF)
+
+$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF)
+
+$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF)
+
+$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF)
+
+$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF)
+
+$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF)
+
########################################################
# Generic objects (not always compiled, depending on
# whether platforms have native implementations)
$(MSWDIR)\helpxlp.obj: $(GENDIR)\helpxlp.$(SRCSUFF)
+$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF)
+
$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF)
$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
+$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
+
+$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
+
+$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
+
$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
+$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
+
$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF)
$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF)
make -f makefile.b32 all_execs
cd $(WXDIR)\src\msw
-all_libs:
- cd $(WXDIR)\src\msw
- make -f makefile.b32 ctl3d dib fafa gauge hytext itsy prologio rcparser wx wxgraph\
- wxstring wxtree mfutils # wxxpm
+wxxpm: $(CFG)
+ cd $(WXDIR)\src\xpm
+ make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
+ cd $(WXDIR)\src\msw
-all_contribs:
- cd $(WXDIR)\src\msw
- make -f makefile.b32 ctl3d fafa wxstring itsy gauge # wxxpm
+clean_wxxpm: $(CFG)
+ cd $(WXDIR)\src\xpm
+ make -f makefile.b32 clean
+ cd $(WXDIR)\src\msw
-# CONTRIB
-ctl3d: $(CFG)
- cd $(WXDIR)\src\msw\ctl3d\borland
- make -f makefile.b32 -DCFG=$(CFG)
+png: $(CFG)
+ cd $(WXDIR)\src\png
+ make -f makefile.b32
cd $(WXDIR)\src\msw
-wxxpm: $(CFG)
- cd $(WXDIR)\src\common\wxxpm
- make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
- cd $(WXDIR)\src\msw
+clean_png:
+ cd $(WXDIR)\src\png
+ make -f makefile.b32 clean
+ cd $(WXDIR)\src\msw
+
+zlib: $(CFG)
+ cd $(WXDIR)\src\zlib
+ make -f makefile.b32 lib
+ cd $(WXDIR)\src\msw
+
+clean_zlib:
+ cd $(WXDIR)\src\zlib
+ make -f makefile.b32 clean
+ cd $(WXDIR)\src\msw
+
+jpeg: $(CFG)
+ cd $(WXDIR)\src\jpeg
+ make -f makefile.b32
+ cd $(WXDIR)\src\msw
+
+clean_jpeg:
+ cd $(WXDIR)\src\jpeg
+ make -f makefile.b32 clean
+ cd $(WXDIR)\src\msw
$(CFG): makefile.b32
copy &&!
-w-pia
-w-aus
-w-rch
--Oxt
-WE
+-tWM
--I$(WXINC);$(BCCDIR)\include
--I$(WXDIR)\include\msw\gnuwin32
+-I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/jpeg;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm
+-I$(WXDIR)\include\wx\msw\gnuwin32
-L$(BCCDIR)\lib
-D__WXWIN__
+-D__WXMSW__
-D__WINDOWS__
-DWIN32
$(OPT)
! $(CFG)
#-I$(WXDIR)\src\common\wxxpm\libxpm.34b\lib
+# -Oxt
clean: $(PERIPH_CLEAN_TARGET)
- erase $(LIBTARGET)
- erase *.obj
- erase *.pch
- erase *.csm
- erase *.cfg
- erase ..\common\y_tab.c
- erase ..\common\lex_yy.c
+ -erase $(LIBTARGET)
+ -erase *.obj
+ -erase *.pch
+ -erase *.csm
+ -erase *.cfg
+ -erase ..\common\y_tab.c
+ -erase ..\common\lex_yy.c
cleanall: clean