|
|
| version 1.7, 2003/12/12 15:08:40 | version 1.38, 2011/12/16 14:02:05 |
|---|---|
| Line 1 | Line 1 |
| XCOMM | XCOMM |
| XCOMM read config | XCOMM user config |
| XCOMM | XCOMM |
| #include "config.tmpl" | #include "config.tmpl" |
| Line 12 XCOMM | Line 12 XCOMM |
| #if defined(BIGENDIAN) | #if defined(BIGENDIAN) |
| CFLAGS+= -DWORDS_BIGENDIAN | CFLAGS+= -DWORDS_BIGENDIAN |
| #endif | #endif |
| CFLAGS+= $(MACHINE_ENDIAN_CFLAGS) | |
| XCOMM | XCOMM |
| XCOMM GUI Toolkit | XCOMM GUI Toolkit |
| XCOMM | XCOMM |
| GTK_CONFIG?= gtk-config | GTK_CONFIG?= pkg-config gtk+-2.0 |
| GTK_DEFINE= -DUSE_GTK | |
| GTK_INCLUDE= `$(GTK_CONFIG) --cflags` | GTK_INCLUDE= `$(GTK_CONFIG) --cflags` |
| GTK_LIB= `$(GTK_CONFIG) --libs` | GTK_LIB= `$(GTK_CONFIG) --libs` |
| GTK_DEFINE= | |
| GTKDEPOBJS= gtk2/dialog_about.o gtk2/dialog_calendar.o \ | |
| gtk2/dialog_config.o gtk2/dialog_midi.o gtk2/dialog_newdisk.o \ | |
| gtk2/dialog_screen.o gtk2/dialog_sound.o \ | |
| gtk2/window_keydisp.o gtk2/window_softkbd.o \ | |
| gtk2/gtk_drawmng.o gtk2/gtk_screen.o gtk2/gtk_font.o \ | |
| gtk2/gtk_keyboard.o gtk2/gtk_menu.o gtk2/gtk_mouse.o \ | |
| gtk2/gtk_main.o gtk2/gtk_wrapper.o | |
| XCOMM | XCOMM |
| XCOMM Audio | XCOMM Audio |
| XCOMM | XCOMM |
| #if defined(USE_NETBSDAUDIO) && defined(NetBSDArchitecture) | |
| SOUND_DEFINE+= -DUSE_NETBSDAUDIO | |
| #endif | |
| #if defined(USE_OSSAUDIO) | |
| SOUND_DEFINE+= -DUSE_OSSAUDIO | |
| #if defined(NetBSDArchitecture) | |
| SYS_LIBRARIES+= -lossaudio | |
| #endif /* NetBSDArchitecture */ | |
| #endif | |
| #if defined(USE_SDLAUDIO) || defined(USE_SDLMIXER) | #if defined(USE_SDLAUDIO) || defined(USE_SDLMIXER) |
| SOUND_DEFINE+= -DUSE_SDLAUDIO | SOUND_DEFINE+= -DUSE_SDLAUDIO |
| SDL_CONFIG?= sdl-config | SDL_CONFIG?= pkg-config sdl |
| SDL_INCLUDE= `$(SDL_CONFIG) --cflags` | SDL_INCLUDE= `$(SDL_CONFIG) --cflags` |
| SDL_LIB= `$(SDL_CONFIG) --libs` | SDL_LIB= `$(SDL_CONFIG) --libs` |
| #if defined(USE_SDLMIXER) | #if defined(USE_SDLMIXER) |
| CFLAGS+= -DUSE_SDLMIXER | CFLAGS+= -DUSE_SDLMIXER |
| SDL_LIB+= -lSDL_mixer | SDL_INCLUDE+= `pkg-config SDL_mixer --cflags` |
| #endif | SDL_LIB+= `pkg-config SDL_mixer --libs` |
| #endif | #endif |
| #if defined(USE_ESDAUDIO) | |
| SOUND_DEFINE+= -DUSE_ESDAUDIO | |
| ESD_CONFIG?= esd-config | |
| ESD_INCLUDE= `$(ESD_CONFIG) --cflags` | |
| ESD_LIB= `$(ESD_CONFIG) --libs` | |
| #endif | |
| #if (defined(USE_NETBSDAUDIO) && defined(NetBSDArchitecture)) || defined(USE_OSSAUDIO) || defined(USE_ESDAUDIO) | |
| PTHREAD_INCLUDE?= | |
| PTHREAD_LIB?= -lpthread | |
| #endif | #endif |
| CDEBUGFLAGS+= -fsigned-char | CDEBUGFLAGS+= -fsigned-char |
| SYSRESPATH?= $(LIBDIR)/xnp2 | SYSRESPATH?= $(LIBDIR)/xnp2 |
| NP2LOCALEDIR?= $(PROJECTROOT)/share/locale | |
| DEFINES= ShmDefines \ | DEFINES= ShmDefines \ |
| -DSYSRESPATH=\"$(SYSRESPATH)\" \ | -DSYSRESPATH=\"$(SYSRESPATH)\" \ |
| -DNP2LOCALEDIR=\"$(NP2LOCALEDIR)\" \ | |
| $(SOUND_DEFINE) $(GTK_DEFINE) \ | $(SOUND_DEFINE) $(GTK_DEFINE) \ |
| $(CPUFLAGS) | $(CPUFLAGS) |
| SYS_LIBRARIES= -lm | SYS_LIBRARIES= -lm |
| EXTRA_INCLUDES= -I. -I.. -I./debug -I../common \ | EXTRA_INCLUDES= -I. -I.. -I./debug -I../common -I../codecnv \ |
| -I../bios -I../cbus -I../fdd -I../font -I../generic \ | -I../bios -I../cbus -I../fdd -I../font -I../generic \ |
| -I../io -I../lio -I../sound -I../sound/vermouth -I../vram \ | -I../io -I../lio -I../mem \ |
| $(PTHREAD_INCLUDE) $(GTK_INCLUDE) $(SDL_INCLUDE) $(ESD_INCLUDE) | -I../sound -I../sound/vermouth -I../sound/getsnd \ |
| -I../vram \ | |
| $(GTK_INCLUDE) $(SDL_INCLUDE) | |
| LOCAL_LIBRARIES= $(XLIB) $(PTHREAD_LIB) $(GTK_LIB) $(SDL_LIB) $(ESD_LIB) | LOCAL_LIBRARIES= $(XLIB) $(GTK_LIB) $(SDL_LIB) |
| #define PassCDebugFlags | #define PassCDebugFlags |
| #if defined(USE_XF86VIDMODE) | |
| DEPLIBS+= $(DEPXXF86VMLIB) | |
| DEFINES+= -DHAVE_XF86VIDMODE | |
| LOCAL_LIBRARIES+= $(XXF86VMLIB) | |
| #endif | |
| COMMONOBJS= ../common/strres.o ../common/milstr.o ../common/_memory.o \ | |
| ../common/textfile.o ../common/profile.o ../common/rect.o \ | |
| ../common/lstarray.o ../common/bmpdata.o ../common/mimpidef.o \ | |
| ../common/parts.o ../common/wavefile.o | |
| CODECNVOBJS= ../codecnv/eucsjis.o ../codecnv/eucucs2.o \ | |
| ../codecnv/sjiseuc.o ../codecnv/sjisucs2.o \ | |
| ../codecnv/ucs2utf8.o ../codecnv/utf8ucs2.o | |
| BIOSOBJS= ../bios/bios.o ../bios/bios09.o ../bios/bios0c.o \ | |
| ../bios/bios12.o ../bios/bios13.o ../bios/bios18.o \ | |
| ../bios/bios19.o ../bios/bios1a.o ../bios/bios1b.o \ | |
| ../bios/bios1c.o ../bios/bios1f.o \ | |
| ../bios/sxsibios.o | |
| CBUSOBJS= ../cbus/cbuscore.o ../cbus/pc9861k.o ../cbus/mpu98ii.o \ | |
| ../cbus/amd98.o ../cbus/board118.o ../cbus/board14.o \ | |
| ../cbus/board26k.o ../cbus/board86.o ../cbus/boardspb.o \ | |
| ../cbus/boardx2.o ../cbus/cs4231io.o ../cbus/pcm86io.o \ | |
| ../cbus/sasiio.o ../cbus/scsiio.o ../cbus/scsicmd.o \ | |
| ../cbus/ideio.o ../cbus/atapicmd.o | |
| FDDOBJS= ../fdd/diskdrv.o ../fdd/newdisk.o ../fdd/fddfile.o \ | |
| ../fdd/fdd_xdf.o ../fdd/fdd_d88.o ../fdd/fdd_mtr.o \ | |
| ../fdd/sxsi.o ../fdd/sxsihdd.o ../fdd/sxsicd.o | |
| FONTOBJS= ../font/font.o ../font/fontdata.o ../font/fontmake.o \ | |
| ../font/fontpc88.o ../font/fontpc98.o ../font/fontv98.o \ | |
| ../font/fontfm7.o ../font/fontx1.o ../font/fontx68k.o | |
| GENERICOBJS= ../generic/cmndraw.o ../generic/keydisp.o ../generic/cmjasts.o \ | |
| ../generic/hostdrv.o ../generic/hostdrvs.o ../generic/unasm.o \ | |
| ../generic/np2info.o ../generic/memdbg32.o ../generic/softkbd.o | |
| IOOBJS= ../io/iocore.o ../io/artic.o ../io/cgrom.o ../io/cpuio.o \ | |
| ../io/crtc.o ../io/dipsw.o ../io/dmac.o ../io/egc.o \ | |
| ../io/emsio.o ../io/fdc.o ../io/fdd320.o ../io/gdc.o \ | |
| ../io/gdc_sub.o ../io/gdc_pset.o ../io/mouseif.o \ | |
| ../io/nmiio.o ../io/np2sysp.o ../io/pic.o ../io/pit.o \ | |
| ../io/printif.o ../io/serial.o ../io/sysport.o ../io/upd4990.o \ | |
| ../io/necio.o ../io/epsonio.o ../io/pcidev.o | |
| LIOOBJS= ../lio/lio.o ../lio/gscreen.o ../lio/gpset.o ../lio/gline.o \ | |
| ../lio/gcircle.o ../lio/gput1.o | |
| MEMOBJS= ../mem/dmav30.o ../mem/dmax86.o ../mem/memegc.o \ | |
| ../mem/memems.o ../mem/memepp.o ../mem/memtram.o \ | |
| ../mem/memvga.o ../mem/memvram.o | |
| NP2OBJS= ../pccore.o ../nevent.o ../calendar.o ../timing.o \ | |
| ../statsave.o ../keystat.o | |
| SOUNDOBJS= ../sound/sound.o ../sound/soundrom.o ../sound/s98.o \ | |
| ../sound/adpcmc.o ../sound/adpcmg.o \ | |
| ../sound/beepc.o ../sound/beepg.o \ | |
| ../sound/cs4231c.o ../sound/cs4231g.o \ | |
| ../sound/fmboard.o ../sound/fmtimer.o \ | |
| ../sound/opngenc.o ../sound/opngeng.o \ | |
| ../sound/pcm86c.o ../sound/pcm86g.o \ | |
| ../sound/psggenc.o ../sound/psggeng.o \ | |
| ../sound/rhythmc.o ../sound/sndcsec.o \ | |
| ../sound/tms3631c.o ../sound/tms3631g.o | |
| GETSNDOBJS= ../sound/getsnd/getsnd.o ../sound/getsnd/getsmix.o \ | |
| ../sound/getsnd/getmp3.o ../sound/getsnd/getogg.o \ | |
| ../sound/getsnd/getwave.o | |
| VERMOUTHOBJS= ../sound/vermouth/midiout.o ../sound/vermouth/midimod.o \ | |
| ../sound/vermouth/midinst.o ../sound/vermouth/midvoice.o \ | |
| ../sound/vermouth/midtable.o | |
| VRAMOBJS= ../vram/vram.o ../vram/scrndraw.o ../vram/sdraw.o \ | |
| ../vram/dispsync.o ../vram/palettes.o ../vram/maketext.o \ | |
| ../vram/maketgrp.o ../vram/makegrph.o ../vram/scrnbmp.o \ | |
| ../vram/makegrex.o | |
| X11OBJS= dosio.o ini.o trace.o \ | |
| kdispwin.o skbdwin.o \ | |
| cmmidi.o cmserial.o \ | |
| drawmng.o kbdmng.o \ | |
| commng.o joymng.o soundmng.o sysmng.o taskmng.o timemng.o \ | |
| main.o np2.o | |
| DEBUGOBJS= debug/viewmem.o | |
| #if defined(CPUCORE_IA32) | #if defined(CPUCORE_IA32) |
| CPUOBJS= \ | CPUOBJS= \ |
| ../i386c/cpucore.o \ | ../i386c/cpucore.o \ |
| ../i386c/dmap.o \ | |
| ../i386c/egcmem.o \ | |
| ../i386c/memory.o \ | ../i386c/memory.o \ |
| ../i386c/ia32/interface.o \ | ../i386c/ia32/interface.o \ |
| ../i386c/ia32/ia32.o \ | ../i386c/ia32/ia32.o \ |
| Line 97 CPUOBJS= \ | Line 175 CPUOBJS= \ |
| ../i386c/ia32/cpu_io.o \ | ../i386c/ia32/cpu_io.o \ |
| ../i386c/ia32/cpu_mem.o \ | ../i386c/ia32/cpu_mem.o \ |
| ../i386c/ia32/ctrlxfer.o \ | ../i386c/ia32/ctrlxfer.o \ |
| ../i386c/ia32/debug.o \ | |
| ../i386c/ia32/disasm.o \ | |
| ../i386c/ia32/exception.o \ | ../i386c/ia32/exception.o \ |
| ../i386c/ia32/groups.o \ | ../i386c/ia32/groups.o \ |
| ../i386c/ia32/inst_table.o \ | ../i386c/ia32/inst_table.o \ |
| Line 122 CPUFLAGS= -DCPUCORE_IA32 \ | Line 202 CPUFLAGS= -DCPUCORE_IA32 \ |
| -I../i386c -I../i386c/ia32 \ | -I../i386c -I../i386c/ia32 \ |
| -I../i386c/ia32/instructions -I../i386c/ia32/instructions/fpu | -I../i386c/ia32/instructions -I../i386c/ia32/instructions/fpu |
| NP2OBJS+= ../debugsub386.o | |
| #else | #else |
| CPUOBJS= ../i286c/i286c.o ../i286c/i286c_mn.o ../i286c/i286c_ea.o \ | CPUOBJS= ../i286c/i286c.o ../i286c/i286c_mn.o ../i286c/i286c_ea.o \ |
| ../i286c/i286c_0f.o ../i286c/i286c_8x.o ../i286c/i286c_sf.o \ | ../i286c/i286c_0f.o ../i286c/i286c_8x.o ../i286c/i286c_sf.o \ |
| ../i286c/i286c_f6.o ../i286c/i286c_fe.o ../i286c/i286c_rp.o \ | ../i286c/i286c_f6.o ../i286c/i286c_fe.o ../i286c/i286c_rp.o \ |
| ../i286c/memory.o ../i286c/egcmem.o ../i286c/dmap.o \ | ../i286c/memory.o \ |
| ../i286c/v30patch.o | ../i286c/v30patch.o |
| CPUFLAGS= -I../i286c | CPUFLAGS= -I../i286c |
| #endif | NP2OBJS+= ../debugsub.o |
| COMMONOBJS= ../common/strres.o ../common/milstr.o ../common/_memory.o \ | |
| ../common/textfile.o ../common/profile.o ../common/rect.o \ | |
| ../common/lstarray.o ../common/bmpdata.o ../common/mimpidef.o \ | |
| ../common/codecnv.o ../common/parts.o ../common/wavefile.o | |
| BIOSOBJS= ../bios/bios.o ../bios/bios02.o ../bios/bios08.o \ | |
| ../bios/bios09.o ../bios/bios0c.o ../bios/bios12.o \ | |
| ../bios/bios13.o ../bios/bios18.o ../bios/bios19.o \ | |
| ../bios/bios1a.o ../bios/bios1b.o ../bios/bios1c.o | |
| CBUSOBJS= ../cbus/cbuscore.o ../cbus/pc9861k.o ../cbus/mpu98ii.o \ | |
| ../cbus/amd98.o ../cbus/board118.o ../cbus/board14.o \ | |
| ../cbus/board26k.o ../cbus/board86.o ../cbus/boardspb.o \ | |
| ../cbus/boardx2.o ../cbus/cs4231io.o ../cbus/pcm86io.o | |
| FDDOBJS= ../fdd/diskdrv.o ../fdd/newdisk.o ../fdd/fddfile.o \ | |
| ../fdd/fdd_xdf.o ../fdd/fdd_d88.o ../fdd/fdd_mtr.o \ | |
| ../fdd/sxsi.o | |
| FONTOBJS= ../font/font.o ../font/fontdata.o ../font/fontmake.o \ | |
| ../font/fontpc88.o ../font/fontpc98.o ../font/fontv98.o \ | |
| ../font/fontfm7.o ../font/fontx1.o ../font/fontx68k.o \ | |
| GENERICOBJS= ../generic/cmndraw.o ../generic/keydisp.o | |
| IOOBJS= ../io/iocore.o ../io/artic.o ../io/cgrom.o ../io/cpuio.o \ | |
| ../io/crtc.o ../io/dipsw.o ../io/dmac.o ../io/egc.o \ | |
| ../io/extmem.o ../io/fdc.o ../io/fdd320.o ../io/gdc.o \ | |
| ../io/gdc_sub.o ../io/gdc_pset.o ../io/itf.o ../io/mouseif.o \ | |
| ../io/nmiio.o ../io/np2sysp.o ../io/pic.o ../io/pit.o \ | |
| ../io/printif.o ../io/serial.o ../io/sysport.o ../io/upd4990.o | |
| LIOOBJS= ../lio/lio.o ../lio/gscreen.o ../lio/gview.o ../lio/gcolor1.o \ | |
| ../lio/gcolor2.o ../lio/gcls.o ../lio/gpset.o ../lio/gline.o \ | |
| ../lio/gput1.o | |
| NP2OBJS= ../pccore.o ../nevent.o ../calendar.o ../timing.o \ | #endif |
| ../debugsub.o ../statsave.o | |
| SOUNDOBJS= ../sound/sound.o ../sound/soundrom.o ../sound/s98.o \ | |
| ../sound/adpcmc.o ../sound/adpcmg.o \ | |
| ../sound/beepc.o ../sound/beepg.o \ | |
| ../sound/cs4231c.o ../sound/cs4231g.o \ | |
| ../sound/fmboard.o ../sound/fmtimer.o \ | |
| ../sound/opngenc.o ../sound/opngeng.o \ | |
| ../sound/pcm86c.o ../sound/pcm86g.o \ | |
| ../sound/psggenc.o ../sound/psggeng.o \ | |
| ../sound/rhythmc.o ../sound/rhythmg.o \ | |
| ../sound/sndcsec.o \ | |
| ../sound/tms3631c.o ../sound/tms3631g.o | |
| VERMOUTHOBJS= ../sound/vermouth/midiout.o ../sound/vermouth/midimod.o \ | |
| ../sound/vermouth/midinst.o ../sound/vermouth/midvoice.o \ | |
| ../sound/vermouth/midtable.o | |
| VRAMOBJS= ../vram/vram.o ../vram/scrndraw.o ../vram/sdraw.o \ | |
| ../vram/dispsync.o ../vram/palettes.o ../vram/maketext.o \ | |
| ../vram/maketgrp.o ../vram/makegrph.o ../vram/scrnbmp.o | |
| X11OBJS= dosio.o ini.o trace.o toolkit.o \ | |
| cmmidi.o kdispwin.o drawmng.o \ | |
| commng.o joymng.o soundmng.o sysmng.o taskmng.o timemng.o \ | |
| main.o np2.o | |
| DEBUGOBJS= debug/unasm.o debug/viewmem.o | |
| SNDDRVOBJS= snddrv/esd.o snddrv/netbsd.o snddrv/oss.o snddrv/sdl.o | |
| GTKDEPOBJS= gtk/dialog_about.o gtk/dialog_calendar.o gtk/dialog_config.o \ | OBJS= $(COMMONOBJS) $(CODECNVOBJS) \ |
| gtk/dialog_file_selection.o gtk/dialog_midi.o \ | $(BIOSOBJS) $(CBUSOBJS) $(FDDOBJS) $(FONTOBJS) \ |
| gtk/dialog_newdisk.o gtk/dialog_screen.o gtk/dialog_sound.o \ | $(IOOBJS) $(LIOOBJS) $(NP2OBJS) $(SOUNDOBJS) $(GETSNDOBJS) \ |
| gtk/window_keydisp.o gtk/window_viewer.o \ | $(VERMOUTHOBJS) $(VRAMOBJS) $(GENERICOBJS) \ |
| gtk/gtk_drawmng.o gtk/gtk_screen.o gtk/gtk_font.o \ | $(CPUOBJS) $(MEMOBJS) \ |
| gtk/gtk_keyboard.o gtk/gtk_menu.o gtk/gtk_mouse.o \ | $(X11OBJS) $(DEBUGOBJS) \ |
| gtk/gtk_main.o gtk/gtk_wrapper.o | $(GTKDEPOBJS) |
| OBJS= $(COMMONOBJS) $(BIOSOBJS) $(CBUSOBJS) $(FDDOBJS) $(FONTOBJS) \ | |
| $(IOOBJS) $(LIOOBJS) $(NP2OBJS) $(SOUNDOBJS) $(VERMOUTHOBJS) \ | |
| $(VRAMOBJS) $(GENERICOBJS) $(CPUOBJS) \ | |
| $(X11OBJS) $(DEBUGOBJS) $(SNDDRVOBJS) $(GTKDEPOBJS) | |
| CSRCS= $(COMMONOBJS:.o=.c) $(BIOSOBJS:.o=.c) $(CBUSOBJS:.o=.c) \ | CSRCS= $(COMMONOBJS:.o=.c) $(CODECNVOBJS:.o=.c) \ |
| $(BIOSOBJS:.o=.c) $(CBUSOBJS:.o=.c) \ | |
| $(FDDOBJS:.o=.c) $(FONTOBJS:.o=.c) $(IOOBJS:.o=.c) \ | $(FDDOBJS:.o=.c) $(FONTOBJS:.o=.c) $(IOOBJS:.o=.c) \ |
| $(LIOOBJS:.o=.c) $(NP2OBJS:.o=.c) $(SOUNDOBJS:.o=.c) \ | $(LIOOBJS:.o=.c) $(NP2OBJS:.o=.c) \ |
| $(VERMOUTHOBJS:.o=.c) $(VRAMOBJS:.o=.c) $(GENERICOBJS:.o=.c) \ | $(SOUNDOBJS:.o=.c) $(GETSNDOBJS:.o=.c) $(VERMOUTHOBJS:.o=.c) \ |
| $(CPUOBJS:.o=.c) \ | $(VRAMOBJS:.o=.c) $(GENERICOBJS:.o=.c) \ |
| $(DEBUGOBJS:.o=.c) $(SNDDRVOBJS:.o=.c) $(X11OBJS:.o=.c) \ | $(CPUOBJS:.o=.c) $(MEMOBJS:.o=.c) \ |
| $(GTKDEPOBJS:.o=.c) | $(DEBUGOBJS:.o=.c) \ |
| $(X11OBJS:.o=.c) $(GTKDEPOBJS:.o=.c) | |
| SRCS= $(CSRCS) | SRCS= $(CSRCS) |
| ALLSRCS= $(ASRCS) $(CSRCS) | ALLSRCS= $(ASRCS) $(CSRCS) |
| .c.o: | .c.o: |
| $(CC) -o $@ $(CFLAGS) $(_NOOP_) -c $< | $(CC) -o $@ $(CFLAGS) $(_NOOP_) -c $< |
| xnp2.man: xnp2.man1 | |
| @sed -e 's;@PKGDATADIR@;$(LIBDIR)/xnp2;' < $> > $@ | |
| xnp2.jman: xnp2.jman1 | |
| @sed -e 's;@PKGDATADIR@;$(LIBDIR)/xnp2;' < $> > $@ | |
| ComplexProgramTarget(xnp2) | ComplexProgramTarget(xnp2) |
| InstallMultipleFlags(resources/fddseek.wav, $(SYSRESPATH)/wav, $(INSTDATFLAGS)) | InstallMultipleFlags(resources/fddseek.wav, $(SYSRESPATH), $(INSTDATFLAGS)) |
| InstallMultipleFlags(resources/fddseek1.wav, $(SYSRESPATH)/wav, $(INSTDATFLAGS)) | InstallMultipleFlags(resources/fddseek1.wav, $(SYSRESPATH), $(INSTDATFLAGS)) |
| InstallMultipleFlags(../np2tool/np2tool.d88, $(SYSRESPATH), $(INSTDATFLAGS)) | |
| clean:: | clean:: |
| $(RM) $(OBJS) | $(RM) $(OBJS) |