Skip to main content

Posts

What the SHELL!?!?

Have you ever had that lingering question of: What else can I do with the SHELL environment variable in GNU/Make? Well, I did and tried a few different little tests and figured I'd share them with you. If you do much work with GNU/Make, you've probably seen some projects specifically use /bin/bash instead of /bin/sh. But outside of that, maybe you've never seen SHELL set to anything else. I have two new favorite features in GNU/Make 3.82: .SHELLFLAGS .ONESHELL:  .SHELLFLAGS The argument(s) passed to the shell are taken from the variable .SHELLFLAGS . The default value of .SHELLFLAGS is -c normally, or -ec in POSIX-conforming mode. .ONESHELL: Sometimes you would prefer that all the lines in the recipe be passed to a single invocation of the shell. Lets have some fun! Lets say instead of using a posix shell for our Makefile recipe, lets use Python instead! SHELL = /usr/bin/python .PHONY: all clea...
Recent posts

Using repo-mm's gerrit-mirror.sh

Overview From my previous post on the topic of using a local mirror to do android platform development while not connected to the internet, I've started working on a small shell project called repo-mm . On the road to completing repo-mm's goal, i've created a small component called gerrit-mirror.sh. Eventually, this will be a part of repo-mm's script, but this is a WIP... In this post, we'll sync AOSP and CyanogenMod, and setup a cm-10.1 working directory. I'll also show some manual steps that will be later managed by repo-mm. The scope does not include building CyanogenMod. Their wiki does a great job with that . Install and Setup First step is to get the repo-mm repository and fetch the submodules. I use Mac OS X 10.8.4 and homebrew . But this should also work on Linux and Windows[Cygwin/MinGW]. On Mac OS X, don't forget to make a case-sensitive disk image ! I called mine Android. Go figure. I recommend making a large sparse image. This way ...

Master of android repo mirrors

Sometimes you want to mirror an entire android platform repo, locally, so that you can init & sync to a working directory without being connected to the internet. Handy if your internet connection sucks, or you travel a lot. I'm sure you can use your imagination. Updating means you just have to keep track of a list of mirrors and make sure they are synced in order (for reference chaining). For AOSP, this task is pretty simple, and the first repository you'll probably mirror: popd mkdir aosp-mirror pushd $_ repo init -u https://android.googlesource.com/mirror/manifest --mirror repo sync -j[dl-jobs] NOTES: $_ in bash is the first argument to the previous command, also dl-jobs is the number of download jobs. popd is the directory we started in. If say, I were on my Mac10.8 and made a case-sensitive sparse disk, and: mkdir /Volumes/Android/mirrors && cd /Volumes/Android/mirrors/ then popd will just return the current directory, as current w...

Stumbled on Scala

I was looking for some examples of using foreground dispatch for the NfcAdapter class today, and I stumbled on the scaloid-apidemos  for the scaloid  project ( blog ), which leverages the Scala language on top of Java and works with Android. So, I'm still not sold on Scala quite yet, but I thought it was interesting enough to note that Scala works on .Net  and  Mono as well. I highly recommend just browsing the Learning Scala page.