zorldo

Goofing around with Ebiten
git clone git://bsandro.tech/zorldo
Log | Files | Refs | README

Makefile (2937B)


      1 # This Makefile is used by the developer. It is not needed in any way to build
      2 # a checkout of the XGB repository.
      3 # It will be useful, however, if you are hacking at the code generator.
      4 # i.e., after making a change to the code generator, run 'make' in the
      5 # xgb directory. This will build xgbgen and regenerate each sub-package.
      6 # 'make test' will then run any appropriate tests (just tests xproto right now).
      7 # 'make bench' will test a couple of benchmarks.
      8 # 'make build-all' will then try to build each extension. This isn't strictly
      9 # necessary, but it's a good idea to make sure each sub-package is a valid
     10 # Go package.
     11 
     12 # My path to the X protocol XML descriptions.
     13 ifndef XPROTO
     14 XPROTO=/usr/share/xcb
     15 endif
     16 
     17 # All of the XML files in my /usr/share/xcb directory EXCEPT XKB. -_-
     18 # This is intended to build xgbgen and generate Go code for each supported
     19 # extension.
     20 all: build-xgbgen \
     21 		 bigreq.xml composite.xml damage.xml dpms.xml dri2.xml \
     22 		 ge.xml glx.xml randr.xml record.xml render.xml res.xml \
     23 		 screensaver.xml shape.xml shm.xml xc_misc.xml \
     24 		 xevie.xml xf86dri.xml xf86vidmode.xml xfixes.xml xinerama.xml \
     25 		 xprint.xml xproto.xml xselinux.xml xtest.xml \
     26 		 xvmc.xml xv.xml
     27 
     28 build-xgbgen:
     29 	(cd xgbgen && go build)
     30 
     31 # Builds each individual sub-package to make sure its valid Go code.
     32 build-all: bigreq.b composite.b damage.b dpms.b dri2.b ge.b glx.b randr.b \
     33 					 record.b render.b res.b screensaver.b shape.b shm.b xcmisc.b \
     34 					 xevie.b xf86dri.b xf86vidmode.b xfixes.b xinerama.b \
     35 					 xprint.b xproto.b xselinux.b xtest.b xv.b xvmc.b
     36 
     37 %.b:
     38 	(cd $* ; go build)
     39 
     40 # Installs each individual sub-package.
     41 install: bigreq.i composite.i damage.i dpms.i dri2.i ge.i glx.i randr.i \
     42 					 record.i render.i res.i screensaver.i shape.i shm.i xcmisc.i \
     43 					 xevie.i xf86dri.i xf86vidmode.i xfixes.i xinerama.i \
     44 					 xprint.i xproto.i xselinux.i xtest.i xv.i xvmc.i
     45 	go install
     46 
     47 %.i:
     48 	(cd $* ; go install)
     49 
     50 # xc_misc is special because it has an underscore.
     51 # There's probably a way to do this better, but Makefiles aren't my strong suit.
     52 xc_misc.xml: build-xgbgen
     53 	mkdir -p xcmisc
     54 	xgbgen/xgbgen --proto-path $(XPROTO) $(XPROTO)/xc_misc.xml > xcmisc/xcmisc.go
     55 
     56 %.xml: build-xgbgen
     57 	mkdir -p $*
     58 	xgbgen/xgbgen --proto-path $(XPROTO) $(XPROTO)/$*.xml > $*/$*.go
     59 
     60 # Just test the xproto core protocol for now.
     61 test:
     62 	(cd xproto ; go test)
     63 
     64 # Force all xproto benchmarks to run and no tests.
     65 bench:
     66 	(cd xproto ; go test -run 'nomatch' -bench '.*' -cpu 1,2,3,6)
     67 
     68 # gofmt all non-auto-generated code.
     69 # (auto-generated code is already gofmt'd.)
     70 # Also do a column check (80 cols) after a gofmt.
     71 # But don't check columns on auto-generated code, since I don't care if they
     72 # break 80 cols.
     73 gofmt:
     74 	gofmt -w *.go xgbgen/*.go examples/*.go examples/*/*.go xproto/xproto_test.go
     75 	colcheck *.go xgbgen/*.go examples/*.go examples/*/*.go xproto/xproto_test.go
     76 
     77 push:
     78 	git push origin master
     79 	git push github master
     80